2012-12-15 16 views
0

我試圖使用Apple文檔here的userVisibleDateTimeStringForRFC3339DateTimeString方法。使用導入的方法使用未聲明的標識符錯誤

因此,首先我創建稱爲jhsDateFormatter一個單獨的類和第一修改它從

- (NSString *)userVisibleDateTimeStringForRFC3339DateTimeString:(NSString *)rfc3339DateTimeString; 

到 - (的NSMutableString *)userVisibleDateTimeStringForRFC3339DateTimeString:(的NSMutableString *)rfc3339DateTimeString:(的NSString *)rfc3339DateTimeFormatString;

所以我可以通過第二個參數,這將是所需的日期格式字符串。

我再導入這個新類爲我的觀點Controller.m或者:

#import "jhsDateFormatter.h" 

和調用的方法是這樣的:

predicateMutableString = [userVisibleDateTimeStringForRFC3339DateTimeString:dateHolderMutableString :@"yyyy'-'MM'-'dd'"]; 

predicateMutableString在viewController.h定義並在合成.M。

我有一個生成錯誤:使用未聲明的標識符的「userVisibleDateTimeSTringForRFC3339DateTimeString

所以我評論了我的修改版本和使用我的類文件的原代碼和方法簽名:

- (NSString *)userVisibleDateTimeStringForRFC3339DateTimeString:(NSString *)rfc3339DateTimeString; 

,並把它稱爲這樣: enter image description here

我不知道爲什麼方法調用不被接受。我想我已經匹配了數據類型。

請讓我知道你的想法是什麼是錯誤的。

感謝

回答

0

你可能想申報你的方法是這樣的:

+ (NSMutableString *)userVisibleDateTimeStringForRFC3339DateTimeString:(NSMutableString *)rfc3339DateTimeString formatString:(NSString *)rfc3339DateTimeFormatString; 

(注意:在開始的+,而事實上,第二個參數現在被命名 - 它是空白的代碼,這是有效的,但奇怪的)

那麼你還是這樣稱呼它:

predicateMutableString = [jhsDateFormatter userVisibleDateTimeStringForRFC3339DateTimeString:dateHolderMutableString formatString:@"yyyy'-'MM'-'dd'"]; 

其中jhsDateFormatter是您創建的新班級。

在你的示例代碼中,你沒有調用任何對象的方法,這就是編譯器抱怨的原因。

+0

謝謝傑西,你的回答非常有道理。我想你是說這是一個類方法,所以首先它應該在類文件中聲明爲+,然後在方法調用中引用該類。 – Jazzmine