2013-02-05 35 views
1

可能重複:
NSDate initWithString爲 'NSDate的' 不可見@interface聲明選擇 'initWithString:'

我寫了下面的代碼行:

[[NSDate alloc] initWithString:@"2013-03-24 10:45:32 +0200"]; 

當我嘗試編譯時,我獲得以下錯誤消息:

ARC語義問題: 爲 'NSDate的' 不可見@interface聲明選擇 'initWithString:'

項目有以下包括:

#import <Foundation/Foundation.h> 

要確保類包含,我嘗試下面的行編譯沒有問題:

[[NSDate alloc] init]; 

我的代碼有什麼問題?

的XCode 4.6版。
項目iOS 6.1中的基礎SDK。

+1

我找到答案也在http://stackoverflow.com/a/7803929/13441 – sergtk

回答

4

initWithString函數在iOS平臺的NSDate類中不存在,因爲您需要先使用NSDateFormatter指定日期格式化程序,該日期格式程序將日期和時間的文本表示轉換爲NSDate對象。使用這樣的事情:

NSString *currentDateString = @"2013-03-24 10:45:32"; 
NSDateFormatter *dateFormater = [[NSDateFormatter alloc] init]; 
[dateFormater setDateFormat:@"yyyy-MM-DD HH:mm:ss"]; 
NSDate *currentDate = [dateFormater dateFromString:currentDateString]; 
+0

有方法的類https://developer.apple.com/library/mac/#文檔/ Cocoa/Reference/Foundation/Classes/NSDate_Class/Reference/Reference.html。但似乎我錯過了唯一的是OS X,而不是在iOS ... – sergtk

+2

爲了更準確的'initWithString:'方法不適用於'NSDate'在iOS平臺上。在Mac OS X平臺上,有一個'initWithString:'方法可用。 – dreamlax

+0

謝謝@dreamlax,編輯我的答案 –

相關問題