此警告作品:可可:的NSMutableString給出了stringValue的
NSString *myVar = @"whatever";
NSDecimalNumber *myNum = [NSDecimalNumber decimalNumberWithString:@"10"];
myVar = [myNum stringValue];
這個版本與可變的字符串產生警告 「從不同的Objective-C型分配」:
NSMutableString *myVar = [NSMutableString stringWithString:@"whatever"]; //UPDATE: CORRECTED CODE
NSDecimalNumber *myNum = [NSDecimalNumber decimalNumberWithString:@"10"];
myVar = [myNum stringValue];
在這兩種情況下stringValue的正在恢復一個NSCFString。不可變的NSString變量不關心,可變的NSMutableString抱怨。
P.S.有人請爲NSMutableString和stringValue添加標籤。
你能發佈給定的警告嗎? –
(我可以發表評論,因爲我還在煮...)。 Laurent,它只是一個黃色的Xcode警告:「警告:來自不同的Objective-C類型的賦值」。 – StringSection
菲利普和弗拉基米爾的答案已經解釋了這種情況。問題是stringValue對象是不可變的,所以不能被分配給一個可變字符串變量。 (弗拉基米爾還指出,我的NSMutableString * myVar = @「whatever」;代碼本質上是非法的,雖然沒有創建有關的警告。)謝謝! – StringSection