我的程序中有以下三行代码:
NSMutableString *stringOne = [NSMutableString stringWithFormat:@"Hello "];
NSMutableString *stringTwo = [NSMutableString stringWithFormat:@"World"];
NSMutableString *sayIt = [stringOne stringByAppendingString:stringTwo];
尽管它有效,但第三行导致警告从NSString *分配NSMutableString *。
我在这里不知所措,因为我使用的是NSMutableString。
答案 0 :(得分:7)
不完全。 stringByAppendingString
不会返回NSMutableString
。而是执行以下操作:
NSMutableString *sayIt = [NSMutableString stringWithString:stringOne];
[sayIt appendString:stringTwo];
或者
NSMutableString *sayIt = [[stringOne stringByAppendingString:stringTwo] mutableCopy];
答案 1 :(得分:2)
我刚刚意识到stringByAppendingString:
尽管从NSString
对象调用它,但仍返回NSMutableString
。由于我正在处理NSMutableString
,我应该使用该类的appendString:
方法。无警告的新代码是:
NSMutableString *stringOne = [NSMutableString stringWithFormat:@"Hello "];
NSMutableString *stringTwo = [NSMutableString stringWithFormat:@"World"];
[stringOne appendString:stringTwo];