2011-05-11 101 views
2

當執行下面的代碼行 (其中c1是整數變量)時,我創建的應用程序崩潰。[NSCFString stringValue]:發送到實例的無法識別的選擇器

NSString *path = c1.stringValue; 

顯示在日誌以下錯誤:

- [NSCFString stringValue的]:無法識別的選擇發送到實例 0x5566e80 2011-05-11 14:56:15.813 電子TREND [1552: 207]未捕獲異常 發生! (NSInvalidArgumentException: - [NSCFString stringValue的]:無法識別的選擇發送到實例 0x5566e80)2011-05-11 14:56:15.816 電子TREND [1552:207] *終止應用程序 由於未捕獲的異常 「NSInvalidArgumentException 」,原因: ' - [NSCFString stringValue的]: 無法識別的選擇發送到實例 0x5566e80'

如果任何人有任何想法來解決這個問題,請相應回答。

回答

1

請試試這個,

NSString *path = [NSString stringWithFormat:@"%@",c1]; 
+0

'c1'不是int;代碼不會編譯。 – bbum 2011-05-11 06:08:14

+0

@bbum我已經更新了代碼。 – PgmFreek 2011-05-11 06:13:12

+1

如果'c1'是一個字符串,爲什麼呢? – bbum 2011-05-11 15:11:42

0

假設C1是NSString實例。

嘗試用

NSString *path = [NSString stringWithString:c1]; 

OR

NSString *path = [[NSString alloc] initWithString:c1]; 
+0

如果'c1'被聲明爲'NSString',則OP的代碼不會被編譯。 – bbum 2011-05-11 06:07:37

3

c1爲

是什麼意思變量的整數? c1如何聲明?

如果c1int,那麼c1.stringValue甚至不會編譯。 c1 - - 是一個特定對象的引用類型(未id)和分類 - 響應該方法reference--的

點語法僅當對象參考作品。

所以,你有這樣的:

MyThingThatRespondsToStringValue *c1; 

然後你是什麼地方,該變量導致崩潰的分配的NSString實例。

相關問題