Why Splash Screen takes long time to launch [closed]
In my apps why Splash screen takes long time for launching. Any one tell me please.
Thanks in Advance :) .h file code is:
@interface RootViewController : UITableViewController<NSXMLParserDelegate> {
UIButton *facebookbutton;
UIButton *twitterbutton;
UIButton *youtubebutton;
UIImageView *backgroundView;
UIImageView *cellImage;
UIView *backView;
UILabel *contactuslabel1;
UILabel *newslabel1;
UILabel *dirLabel;
UILabel *abtLabel;
UILabel *faqLabel;
UILabel *evtLabel;
UIImageView *countImg;
UILabel *cntLabel;
UILabel *alrtLabel;
UIImageView *alrtCountImg;
UILabel *alrtCountLabel;
NSURLConnection *xmlConnection;
NSMutableString *xmlValue;
NSMutableDictionary *currentItem;
NSMutableData *responseData;
NSMutableArray *xmlParseArray;
NSString *urlString;
NSString *theXML;
NSString *alertString;
NSString *eventString;
UIAlertView *networkAlert;
@property(nonatomic, retain)UIImageView *cellImage;
@property(nonatomic, retain)UIView *backView;
@property(nonatomic,retain)NSURLConnection *xmlConnection;
@property(nonatomic,retain)NSMutableString *xmlValue;
@property(nonatomic,retain)NSMutableDictionary *currentItem;
@property(nonatomic,retain)NSMutableData *responseData;
@property(nonatomic,retain)NSMutableArray *xmlParseArray;
@property(nonatomic,retain) NSString *urlString;
********************************************************************
.m file code is
@implementation RootViewController
@synthesize cellImage,backView;
@synthesize responseData,xmlValue,xmlConnection,xmlParseArray,currentItem,urlString;
// Check Network Reachability Connection---------
- (void) showNetWorkAlert {
[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
networkAlert = [[UIAlertView alloc] initWithTitle:@"No Internet Connection" message:@"This app require an internet connection via wifi or cellular network to work."
delegate:self cancelButtonTitle:@"OK" otherButtonTitles:@"Retry", nil];
[networkAlert show];
[networkAlert release];
}
#pragma mark To Check Network Connection.
- (BOOL) currentNetworkStatus {
[UIApplication sharedApplication].networkActivityIndicatorVisible = YES;
BOOL connected;
const char *host = "www.apple.com";
SCNetworkReachabilityRef reachability = SCNetworkReachabilityCreateWithName(NULL, host);
SCNetworkReachabilityFlags flags;
connected = SCNetworkReachabilityGetFlags(reachability, &flags);
BOOL isConnected = NO;
isConnected = connected && (flags & kSCNetworkFlagsReachable) && !(flags & kSCNetworkFlagsConnectionRequired);
CFRelease(reachability);
if(!isConnected) {
// sleep(1);
[self showNetWorkAlert];
}
else
return isConnected;
return isConnected;
}
- (void)viewDidLoad
{
[super viewDidLoad];
[self currentNetworkStatus];
self.navigationController.navigationBarHidden = NO;
self.navigationController.navigationBar.tintColor = [UIColor blackColor];
self.title = @"Association's Name";
self.tableView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"background.png"]];
self.tableView.separatorColor = [UIColor clearColor];
self.tableView.userInteractionEnabled=YES;
self.tableView.scrollEnabled = YES;
self.tableView.rowHeight = 49.0;
facebookbutton=[UIButton buttonWithType:UIButtonTypeCustom];
facebookbutton.frame = CGRectMake(85, 359, 48, 48);
[facebookbutton setBackgroundColor:[UIColor clearColor]];
[facebookbutton setImage:[UIImage imageNamed:@"facebook_icon.png"] forState:UIControlStateNormal];
[facebookbutton addTarget:self action:@selector(facebookbuttonAction) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:facebookbutton];
youtubebutton=[UIButton buttonWithType:UIButtonTypeCustom];
youtubebutton.frame = CGRectMake(133, 359, 48, 48);
[youtubebutton setBackgroundColor:[UIColor clearColor]];
[youtubebutton setImage:[UIImage imageNamed:@"youtube.png"] forState:UIControlStateNormal];
[youtubebutton addTarget:self action:@selector(youtubebuttonAction) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:youtubebutton];
twitterbutton=[UIButton buttonWithType:UIButtonTypeCustom];
twitterbutton.frame = CGRectMake(180, 359, 48, 48);
[twitterbutton setBackgroundColor:[UIColor clearColor]];
[twitterbutton setImage:[UIImage imageNamed:@"twitter.png"] forState:UIControlStateNormal];
[twitterbutton addTarget:self action:@selector(twitterbuttonAction) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:twitterbutton];
self.urlString = @"http://alpha.cfcdi.org/eassociation/web-service/init.xml";
[self parseData];
// [self performSelector:@selector(parseData) withObject:self afterDelay:0.1f];
}
-(void)facebookbuttonAction{
FaceBookViewContoller *faceBookViewContoller = [[FaceBookViewContoller alloc]init];
[self.navigationController pushViewController:faceBookViewContoller animated:YES];
[faceBookViewContoller release];
}
- (void)twitterbuttonAction{
TwitterViewController *twitterViewController = [[TwitterViewController alloc]init];
[self.navigationController pushViewController:twitterViewController animated:YES];
[twitterViewController release];
}
-(void)youtubebuttonAction{
YouTubeViewController *youTubeViewController = [[YouTubeViewController alloc]init];
[self.navigationController pushViewController:youTubeViewController animated:YES];
[youTubeViewController release];
}
//...................Load URL String For Connection................
-(void)parseData
{
xmlConnection = [[NSURLConnection alloc]
initWithRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"%@", urlString]]] delegate:self];
if (xmlConnection == nil){
NSLog(@"Connection Error");
}
else{
[UIApplication sharedApplication].networkActivityIndicatorVisible = NO;
responseData = [[NSMutableData alloc] retain];
xmlValue = [[NSMutableString alloc] init];
currentItem = [[NSMutableDictionary alloc] init];
xmlParseArray = [[NSMutableArray alloc] init];
}
}
#pragma mark URLConnection delegate methods
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response {
[responseData setLength:0];
}
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
[responseData appendData:data];
}
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error{
NSLog(@"error :%@",error);
}
- (void)connectionDidFinishLoading:(NSURLConnection *)connection{
theXML = [[NSString alloc] initWithBytes: [responseData mutableBytes] length:[responseData length] encoding:NSUTF8StringEncoding];
NSLog(@"theXML :%@",theXML);
NSXMLParser *parser = [[NSXMLParser alloc] initWithData:responseData];
[parser setDelegate:self];
[parser parse];
}
//---------------- NSXML Parser Delegate---------------------------------
- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict {
if([elementName isEqualToString:@"Init"]){
}
[xmlValue setString:@""];
}
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName {
if ([elementName isEqualToString:@"alerts"]) {
[currentItem setValue:[NSString stringWithString:xmlValue] forKey:elementName];
}else if ([elementName isEqualToString:@"events"]) {
[currentItem setValue:[NSString stringWithString:xmlValue] forKey:elementName];
}else if ([elementName isEqualToString:@"Init"]) {
[self.xmlParseArray addObject:[NSDictionary dictionaryWithDictionary:currentItem]];
}
NSLog(@"xmlArray is : %@",xmlParseArray);
}
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string {
[xmlValue appendString:string];
}
// Customize the number of sections in the table view.
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return 7;
}
// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
cell.selectionStyle = UITableViewCellSelectionStyleNone;
}
// Configure the cell.
cellImage = [[UIImageView alloc]initWithFrame:CGRectMake(12,6,303,46)];
cellImage.backgroundColor = [UIColor clearColor];
cellImage.image = [UIImage imageNamed:@"first_cell.png"];
[cell addSubview:cellImage];
cell.backgroundColor = [UIColor clearColor];
// NSLog(@"xmlArray At CellForRowAtIndexPath is : %@",xmlParseArray);
if(indexPath.row == 0)
{
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
UILabel *aboutlabel = [[UILabel alloc]initWithFrame:CGRectMake(20,12,75,25)];
aboutlabel.backgroundColor = [UIColor clearColor];
aboutlabel.text = @"About Us";
aboutlabel.textAlignment = UITextAlignmentLeft;
[cell addSubview:aboutlabel];
[aboutlabel release];
}
if(indexPath.row == 1)
{
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
UILabel *label11 = [[UILabel alloc]initWithFrame:CGRectMake(20,12,75,25)];
label11.backgroundColor = [UIColor clearColor];
label11.text = @"Directory";
label11.textAlignment = UITextAlignmentLeft;
[cell addSubview:label11];
[label11 release];
}
if(indexPath.row == 2)
{
UILabel *alertlabel = [[UILabel alloc]initWithFrame:CGRectMake(20,13,150,25)];
alertlabel.backgroundColor = [UIColor clearColor];
alertlabel.text = @"Events";
alertlabel.textAlignment = UITextAlignmentLeft;
[cell addSubview:alertlabel];
UIImageView *cellImg3 = [[UIImageView alloc]initWithFrame:CGRectMake(265,14,32,23)];
cellImg3.image = [UIImage imageNamed:@"count_bg.png"];
cellImg3.backgroundColor = [UIColor clearColor];
[cell addSubview:cellImg3];
UILabel *label6 = [[UILabel alloc]initWithFrame:CGRectMake(263,10,36,26)];
label6.backgroundColor = [UIColor clearColor];
label6.text = [[self.xmlParseArray objectAtIndex:1] objectForKey:@"events"];
label6.textAlignment = UITextAlignmentCenter;
label6.textColor = [UIColor whiteColor];
[cell addSubview:label6];
[alertlabel release];
[cellImg3 release];
}
if(indexPath.row == 3)
{
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
UILabel *newslabel = [[UILabel alloc]initWithFrame:CGRectMake(20,13,150,25)];
newslabel.backgroundColor = [UIColor clearColor];
newslabel.text = @"News";
newslabel.textAlignment = UITextAlignmentLeft;
[cell addSubview:newslabel];
[newslabel release];
}
if(indexPath.row == 4)
{
UILabel *eventlabel = [[UILabel alloc]initWithFrame:CGRectMake(20,12,150,25)];
eventlabel.backgroundColor = [UIColor clearColor];
eventlabel.text = @"Alerts";
eventlabel.textAlignment = UITextAlignmentLeft;
[cell addSubview:eventlabel];
UIImageView *cellImg4 = [[UIImageView alloc]initWithFrame:CGRectMake(265,14,32,23)];
cellImg4.image = [UIImage imageNamed:@"count_bg.png"];
cellImg4.backgroundColor = [UIColor clearColor];
[cell addSubview:cellImg4];
UILabel *label5 = [[UILabel alloc]initWithFrame:CGRectMake(263,10,36,26)];
label5.backgroundColor = [UIColor clearColor];
label5.text = [[self.xmlParseArray objectAtIndex:0] objectForKey:@"alerts"];
label5.textAlignment = UITextAlignmentCenter;
label5.textColor = [UIColor whiteColor];
[cell addSubview:label5];
[eventlabel release];
[cellImg4 release];
[label5 release];
}
if(indexPath.row == 5)
{
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
UILabel *askuslabel = [[UILabel alloc]initWithFrame:CGRectMake(20,14,150,25)];
askuslabel.backgroundColor = [UIColor clearColor];
askuslabel.text = @"FAQ / Ask Us";
askuslabel.textAlignment = UITextAlignmentLeft;
[cell addSubview:askuslabel];
[askuslabel release];
}
if(indexPath.row == 6)
{
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
UILabel *contactuslabel = [[UILabel alloc]initWithFrame:CGRectMake(20,14,150,25)];
contactuslabe开发者_开发问答l.backgroundColor = [UIColor clearColor];
contactuslabel.text = @"Contact Us";
contactuslabel.textAlignment = UITextAlignmentLeft;
[cell addSubview:contactuslabel];
[contactuslabel release];
}
return cell;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = (UITableViewCell *)[tableView cellForRowAtIndexPath:indexPath];
backView = [[UIView alloc] initWithFrame:CGRectMake(5,6,300,39)];
backView.backgroundColor = [UIColor lightGrayColor]; // blueColor
[cell addSubview:backView];
self.backView.hidden = NO;
if(indexPath.row == 0){
abtLabel = [[UILabel alloc]initWithFrame:CGRectMake(20,12,75,25)];
abtLabel.backgroundColor = [UIColor clearColor];
abtLabel.text = @"About Us";
abtLabel.textAlignment = UITextAlignmentLeft;
[cell addSubview:abtLabel];
AboutUsViewController *aboutUsViewController = [[AboutUsViewController alloc]init];
[self.navigationController pushViewController:aboutUsViewController animated:YES];
[aboutUsViewController release];
[abtLabel release];
}
if(indexPath.row == 1){
dirLabel = [[UILabel alloc]initWithFrame:CGRectMake(20,12,75,25)];
dirLabel.backgroundColor = [UIColor clearColor];
dirLabel.text = @"Directory";
dirLabel.textAlignment = UITextAlignmentLeft;
[cell addSubview:dirLabel];
DirectoryListViewController *directoryListViewController = [[DirectoryListViewController alloc]init];
[self.navigationController pushViewController:directoryListViewController animated:YES];
[directoryListViewController release];
[dirLabel release];
}
if(indexPath.row == 2){
if(![self currentNetworkStatus])
{
UIAlertView *eNetAlert = [[UIAlertView alloc]initWithTitle:@"No Internet Connection" message:@"This app require an internet connection via wifi or cellular network to work." delegate:self cancelButtonTitle:@"OK" otherButtonTitles:@"Retry", nil];
[eNetAlert show];
[eNetAlert release];
self.backView.hidden = YES;
}
else {
alrtLabel = [[UILabel alloc]initWithFrame:CGRectMake(20,13,150,25)];
alrtLabel.backgroundColor = [UIColor clearColor];
alrtLabel.text = @"Events";
alrtLabel.textAlignment = UITextAlignmentLeft;
[cell addSubview:alrtLabel];
alrtCountImg = [[UIImageView alloc]initWithFrame:CGRectMake(265,14,32,23)];
alrtCountImg.image = [UIImage imageNamed:@"count_bg.png"];
alrtCountImg.backgroundColor = [UIColor clearColor];
[cell addSubview:alrtCountImg];
alrtCountLabel = [[UILabel alloc]initWithFrame:CGRectMake(263,10,36,26)];
alrtCountLabel.backgroundColor = [UIColor clearColor];
alrtCountLabel.text = [[self.xmlParseArray objectAtIndex:1] objectForKey:@"events"];
NSLog(@"alrtCountLabel.text : %@",alrtCountLabel.text);
alrtCountLabel.textAlignment = UITextAlignmentCenter;
alrtCountLabel.textColor = [UIColor whiteColor];
[cell addSubview:alrtCountLabel];
EventViewController *eventViewController = [[EventViewController alloc]init];
[self.navigationController pushViewController:eventViewController animated:YES];
[eventViewController release];
[alrtLabel release];
[alrtCountImg release];
[alrtCountLabel release];
}
}
if(indexPath.row == 3)
{
newslabel1 = [[UILabel alloc]initWithFrame:CGRectMake(20,13,150,25)];
newslabel1.backgroundColor = [UIColor clearColor];
newslabel1.text = @"News";
newslabel1.textAlignment = UITextAlignmentLeft;
[cell addSubview:newslabel1];
NewsViewController *newsViewController = [[NewsViewController alloc]init];
[self.navigationController pushViewController:newsViewController animated:YES];
[newsViewController release];
[newslabel1 release];
}
if(indexPath.row == 4){
if(![self currentNetworkStatus])
{
UIAlertView *eNetAlert1 = [[UIAlertView alloc]initWithTitle:@"No Internet Connection" message:@"This app require an internet connection via wifi or cellular network to work." delegate:self cancelButtonTitle:@"OK" otherButtonTitles:@"Retry", nil];
[eNetAlert1 show];
[eNetAlert1 release];
self.backView.hidden = YES;
}
else {
evtLabel = [[UILabel alloc]initWithFrame:CGRectMake(20,12,150,25)];
evtLabel.backgroundColor = [UIColor clearColor];
evtLabel.text = @"Alerts";
evtLabel.textAlignment = UITextAlignmentLeft;
[cell addSubview:evtLabel];
countImg = [[UIImageView alloc]initWithFrame:CGRectMake(265,14,32,23)];
countImg.image = [UIImage imageNamed:@"count_bg.png"];
countImg.backgroundColor = [UIColor clearColor];
[cell addSubview:countImg];
cntLabel = [[UILabel alloc]initWithFrame:CGRectMake(263,10,36,26)];
cntLabel.backgroundColor = [UIColor clearColor];
cntLabel.text = [[self.xmlParseArray objectAtIndex:0] objectForKey:@"alerts"];
NSLog(@"cntLabel.text : %@",cntLabel.text);
cntLabel.textAlignment = UITextAlignmentCenter;
cntLabel.textColor = [UIColor whiteColor];
[cell addSubview:cntLabel];
AlertViewController *alertViewController = [[AlertViewController alloc]init];
[self.navigationController pushViewController:alertViewController animated:YES];
[alertViewController release];
[evtLabel release];
[countImg release];
[cntLabel release];
}
}
if(indexPath.row == 5){
faqLabel = [[UILabel alloc]initWithFrame:CGRectMake(20,14,150,25)];
faqLabel.backgroundColor = [UIColor clearColor];
faqLabel.text = @"FAQ / Ask Us";
faqLabel.textAlignment = UITextAlignmentLeft;
[cell addSubview:faqLabel];
AskOneViewController *askOneViewController = [[AskOneViewController alloc]init];
[self.navigationController pushViewController:askOneViewController animated:YES];
[askOneViewController release];
[faqLabel release];
}
if(indexPath.row == 6){
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
contactuslabel1 = [[UILabel alloc]initWithFrame:CGRectMake(20,14,150,25)];
contactuslabel1.backgroundColor = [UIColor clearColor];
contactuslabel1.text = @"Contact Us";
contactuslabel1.textAlignment = UITextAlignmentLeft;
[cell addSubview:contactuslabel1];
ContactUsViewController *contactUsViewController = [[ContactUsViewController alloc]init];
[self.navigationController pushViewController:contactUsViewController animated:YES];
[contactUsViewController release];
[contactuslabel1 release];
}
}
/*- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
// Return YES for supported orientations
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}*/
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
}
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
self.cellImage.hidden = NO;
self.backView.hidden = YES;
contactuslabel1.hidden = YES;
newslabel1.hidden = YES;
dirLabel.hidden = YES;
abtLabel.hidden = YES;
faqLabel.hidden = YES;
evtLabel.hidden =YES;
countImg.hidden =YES;
cntLabel.hidden = YES;
// alrtLabel.hidden = YES;
alrtCountImg.hidden =YES;
alrtCountLabel.hidden = YES;
}
- (void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
}
- (void)viewDidDisappear:(BOOL)animated
{
[super viewDidDisappear:animated];
}
- (void)didReceiveMemoryWarning
{
// Releases the view if it doesn't have a superview.
[super didReceiveMemoryWarning];
// Relinquish ownership any cached data, images, etc that aren't in use.
}
- (void)viewDidUnload
{
[super viewDidUnload];
// Relinquish ownership of anything that can be recreated in viewDidLoad or on demand.
// For example: self.myOutlet = nil;
}
- (void)dealloc
{
[facebookbutton release];
[twitterbutton release];
[youtubebutton release];
[super dealloc];
}
@end
-(void)parseData;
@end
It's not the splash screen that's taking so long but loading and initializing your app (until it reaches the point where your app finally can display its first view).
精彩评论