2015-09-21 33 views
0

對不起,發佈了這個消息,但我一直在摔跤了一段時間,我一直在嘗試使用timeIntervalSinceDate,但它不行爲。這是M檔:objective c error「沒有可見的@interface for'NSString'聲明選擇器'timeIntervalSinceDate:'」

#import "ViewController.h" 

@interface ViewController() 

    @end 

    @implementation ViewController //warning: Method definition for 'timeIntervalSinceDate:' not found 

-(IBAction) setButtonTapped:(id)sender { 

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 

NSString *dateTimeString = [dateFormatter stringFromDate: dateTimePicker.date ]; 
NSLog(@"Set button tapped : %@", dateTimeString); 

NSDate* currentDate = [NSDate date]; 
NSTimeInterval secs = [dateTimeString timeIntervalSinceDate:currentDate]; //error: No visible @interface for 'NSString' declares the selector 'timeIntervalSinceDate:’ 
NSLog(@"Seconds %f", secs); 

[self scheduleLocalNotificationWithDate: dateTimePicker.date]; 

[self presentMessage:@"succesfully set!"]; 

} 

- (void)didReceiveMemoryWarning 
{ 
[super didReceiveMemoryWarning]; 
// Dispose of any resources that can be recreated. 
} 

@end 

,這是.h文件:

#import <UIKit/UIKit.h> 
#import <AvFoundation/AVFoundation.h> 

@interface ViewController : UIViewController <AVAudioPlayerDelegate> 
{ 
    IBOutlet UIDatePicker *dateTimePicker; 
} 
- (NSTimeInterval)timeIntervalSinceDate:dateTimePicker; 
-(IBAction) setButtonTapped:(id)sender; 

@end 

也將方法是什麼timeIntervalSinceDate?我無法找到任何信息,因爲我對此很陌生,因此確定如何爲自己解決問題。

感謝

回答

3

您正試圖在NSString對象(dateTimeString)上執行NSDate方法。首先將其轉換爲NSDate格式,然後在NSDate對象上調用'timeIntervalSinceDate:'方法。

請參考這篇文章如何將NSString轉換爲NSDate。

Converting NSString to NSDate (and back again)

2

要調用timeIntervalSinceDate:NSString這是NSDate的方法。將NSString轉換爲 NSDate使用NSDateFormatter並調用函數timeIntervalSinceDate:,或者在您的情況下使用dateTimePicker.date本身。不要將其轉換爲NSString

2

timeIntervalSinceDateNSDate類的方法,並記錄在案here

您正在調用哪一個基本的錯誤告訴你在錯誤的類型NSString的方法。

相關問題