2009-11-03 34 views
0

如果我一個可變的字符串的值設定爲從數組的值,並且使用以下代碼來操縱它:闡釋的「警告:分配來自不同目標C型」

NSMutableString *theCountry = [listItems objectAtIndex:3]; 
theCountry = [theCountry stringByReplacingOccurrencesOfString:@"\"" withString:@""]; 

我接收報警在上述代碼的第二行之後的「警告:從不同的Objective-C類型賦值」。如果在方法調用之前沒有「theCountry =」,警告消失,但字符串不會被操縱...

回答

5

0123'方法聲明爲返回NSString*而不是NSMutableString*。基本上,在分配中,您將NSString*分配給類型爲NSMutableString*的變量,該變量不一定安全(請注意NSMutableString繼承NSString,而不是相反)。

+0

我會補充說,每當你得到這個警告時,這意味着你將一個X類型的對象分配給一個爲Y類型聲明的變量。如果你故意這樣做了,那麼你應該鑄造該對象,如果你無意中那麼你應該修復它:-) – 2009-11-03 21:20:11

+0

謝謝,我只是將NSMutableString更改爲NSString,現在它工作正常。沒有警告和應用程序仍然正常工作。 – rson 2009-11-03 21:31:36