尝试将const char *str附加到NSSting *

在.h中

@interface SomeViewController : UIViewController
{
    NSString    *consoleText;
}

@property (nonatomic, retain) NSString *consoleText;

@end


以.mm为单位

@synthesize consoleText;


可以的。

const char *str = "abc";

self.consoleText = [NSString stringWithFormat: @"%@%@", self.consoleText, [NSString stringWithUTF8String:str]];


但是以下失败:

self.consoleText = [self.consoleText stringByAppendingString:[NSString stringWithUTF8String:str]];


为什么stringByAppendingString失败但stringWithFormat起作用?谢谢!

最佳答案

在其中两个操作中,您正在做不同的事情,一个是追加现有字符串,另一个是设置新字符串

要追加字符串,应该有一个字符串对象

self.consoleText = [self.consoleText stringByAppendingString:[NSString stringWithUTF8String:str]];


据了解self.consoleText ---> nil,所以它不会追加字符串。

所以做类似的事情

if(self.consoleText)
{
    self.consoleText = [self.consoleText stringByAppendingString:[NSString stringWithUTF8String:str]];

}else
{
self.consoleText = [NSString stringWithUTF8String:str];
}

10-08 12:11