2010-03-22 10 views
0

Когда я запускаю свое приложение, пытаясь что-то сделать, он сработает через пару секунд. У меня есть предупреждения о предупреждении: некорректная реализация «downloadTextViewCOntroller. У меня также есть» метод definiton для -timerFinished not found и «метод definiton для -timerFinished не найден», это мой .m plese help me. заголовочный также т днаПриложение аварийно завершает работу через несколько секунд

// 
    // downloadTextViewController.m 
    // downloadText 
// 
// Created by Declan Scott on 18/03/10. 
// Copyright __MyCompanyName__ 2010. All rights reserved. 
// 

    #import "downloadTextViewController.h" 


@implementation downloadTextViewController 

@synthesize start; 

-(IBAction)tapit { 
    start.hidden = YES; 
} 


-(void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration { 
    if (fabsf(acceleration.x) > 2.0 || fabsf(acceleration.y) >2.0 || fabsf(acceleration.z) > 2.0) { 
     UIAlertView *alert = [[UIAlertView alloc] initWithTitle:nil message:@"This app was developed by Declan Scott and demonstrates NSURLConnection and NSMutableData" 
                 delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil]; 
     [alert show]; 
     [alert release]; 
    } 
} 

- (NSString *) saveFilePath 
{ 
    NSArray *pathArray = 
    NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 

    return [[pathArray objectAtIndex:0] stringByAppendingPathComponent:@"savedddata.plist"]; 

} 

- (void)applicationWillTerminate:(UIApplication *)application { 
    NSArray *values = [[NSArray alloc] initWithObjects:textView.text,nil]; 
    [values writeToFile:[self saveFilePath] atomically:YES]; 
    [values release]; 

} 

- (void)viewDidLoad { 
    UIAccelerometer *accelerometer = [UIAccelerometer sharedAccelerometer]; 
    accelerometer.delegate = self; 
    accelerometer.updateInterval = 1.0f/60.0f; 
    NSString *myPath = [self saveFilePath]; 
    NSLog(myPath); 
    BOOL fileExists = [[NSFileManager defaultManager] fileExistsAtPath:myPath]; 

    if (fileExists) 
    { 

     NSArray *values = [[NSArray alloc] initWithContentsOfFile:myPath]; 
     textView.text = [values objectAtIndex:0]; 
     [values release]; 
    } 

    // notification 
    UIApplication *myApp = [UIApplication sharedApplication]; 

    // add yourself to the dispatch table 
    [[NSNotificationCenter defaultCenter] addObserver:self 
              selector:@selector(applicationWillTerminate:) 
               name:UIApplicationWillTerminateNotification 
               object:myApp]; 

    [super viewDidLoad]; 
} 


// Implement viewDidLoad to do additional setup after loading the view, typically from a nib. 
- (IBAction)fetchData { 

    loadingAlert = [[UIAlertView alloc] initWithTitle:@"Loading…\n\n\n\n" message:nil 
              delegate:self cancelButtonTitle:@"Cancel Timer" otherButtonTitles:nil]; 
    [loadingAlert show]; 

    UIActivityIndicatorView *activityView = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite]; 
    activityView.frame = CGRectMake(139.0f-18.0f, 60.0f, 37.0f, 37.0f); 
    [loadingAlert addSubview:activityView]; 
    [activityView startAnimating]; 

    timer = [NSTimer scheduledTimerWithTimeInterval:10.0f target:self selector:@selector(timerFinished) userInfo:nil repeats:NO]; 


    NSURLRequest *downloadRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://simpsonatyapps.com/exampletext.txt"] 
                cachePolicy:NSURLRequestReloadIgnoringCacheData 
               timeoutInterval:1.0]; 


    NSURLConnection *downloadConnection = [[NSURLConnection alloc] initWithRequest:downloadRequest delegate:self]; 

    if (downloadConnection) 
     downloadedData = [[NSMutableData data] retain]; 

    else { 

     // Error 
      } 

} 

- (void)connection:(NSURLConnection *)downloadConnection didReceiveData:(NSData *)data { 

    [downloadedData appendData:data]; 

    NSString *file = [[NSString alloc] initWithData:downloadedData encoding:NSUTF8StringEncoding]; 

    textView.text = file; 

    // get rid of alert  
     [loadingAlert dismissWithClickedButtonIndex:-1 animated:YES]; 
     [loadingAlert release]; 

    /// add badge 
    [[UIApplication sharedApplication] setApplicationIconBadgeNumber:1]; 

} 

- (void)didReceiveMemoryWarning { 
    // Releases the view if it doesn't have a superview. 
    [super didReceiveMemoryWarning]; 

    // Release any cached data, images, etc that aren't in use. 
} 

- (void)viewDidUnload { 
    // Release any retained subviews of the main view. 
    // e.g. self.myOutlet = nil; 
} 


- (void)dealloc { 
    [super dealloc]; 
} 

- (NSCachedURLResponse *)connection:(NSURLConnection *)connection willCacheResponse:(NSCachedURLResponse *)cachedResponse { 
    return nil; 
} 


@end 

// 
// downloadTextViewController.h 
// downloadText 
// 
// Created by Declan Scott on 18/03/10. 
// Copyright __MyCompanyName__ 2010. All rights reserved. 
// 

#import <UIKit/UIKit.h> 

@interface downloadTextViewController : UIViewController { 

    IBOutlet UITextView *textView; 
    NSMutableData *downloadedData; 
    UIAlertView *loadingAlert; 
    NSTimer *timer; 
    IBOutlet UIButton *start; 

} 
- (IBAction)fetchData; 
- (IBAction)tapIt; 
- (void)timerFinished; 
@property (nonatomic, retain) UIButton *start; 

@end 

ответ

2

Вы не реализовали свой -timerFinished метода, объявленный в заголовке. В дополнение к объявлению его в файле заголовка вам необходимо обеспечить его реализацию, даже если он пуст.

Ваше приложение разбивается, потому что таймер срабатывает через 10 секунд и не может найти способ, который он пытается вызвать.

+0

спасибо вам за вашу помощь в настоящее время он прекрасно работает! – declanjs

0

для одного, у вас нет ничего для timerFinished, поэтому вы получаете это предупреждение, но на данный момент вы можете игнорировать его, пока не реализуете это в своем коде. И вы запускаете таймер и делаете то, что он не может, потому что у вас нет кода на месте.

Чтобы исправить это, просто поместите в вашем ом

-(void)timerFinished 
{ 
} 
Смежные вопросы