Cocoa NSString stringWithUTF8String追加错误
我正在尝试将字符数组附加到Cocoa NSString stringWithUTF8String追加错误,cocoa,nsstring,Cocoa,Nsstring,我正在尝试将字符数组附加到NSString。当我使用下面的代码时,会出现以下错误: *********无法将初始化方法-initWithCharactersCopy:length:freeWhenDone:发送到类NSCFString:创建具体实例的抽象对象 这意味着什么?如何修复 NSString *str = [[NSString new] initWithString:@"Name: "]; NSString *name = [[NSString new] stringWithUTF8S
NSString
。当我使用下面的代码时,会出现以下错误:
*********无法将初始化方法-initWithCharactersCopy:length:freeWhenDone:发送到类NSCFString:创建具体实例的抽象对象
这意味着什么?如何修复
NSString *str = [[NSString new] initWithString:@"Name: "];
NSString *name = [[NSString new] stringWithUTF8String:user.name];
//NSString *name = [[NSString stringWithUTF8String:seg.segname] copy]; //this also failed
str = [str stringByAppendingString:name];
我想你在找这样的东西:
NSString *str = @"Name: ";
NSString *name = [NSString stringWithUTF8String:user.name];
str = [str stringByAppendingString:name];
我将使用
[NSString stringWithFormat::
,而不是向另一个字符串追加字符串
NSString *name = [NSString stringWithUTF8String:user.name];
str = [NSString stringWithFormat: @"Name: %@", name];
您甚至可以在一行中编写代码
str = [NSString stringWithFormat: @"Name: %@", [NSString stringWithUTF8String:user.name]];
您看到的错误是将-initWithString:发送到已初始化的字符串。这是因为[NSString new]返回一个已初始化的字符串。如果需要特殊的init方法,则不能使用+new
您可能需要在上查看Apple的objective-c文档。此外,请不要将new与其他init选择器一起使用。它基本上是一个alloc.init调用。