2009-11-03 55 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