【发布时间】:2010-10-10 03:22:51
【问题描述】:
所以,我想像这样将一个实例变量放入一个 NSString 中:
NSString *theAnswer = (@"答案是 %@\n", self.answer);
我不确定我是否正确。我认为 NSString 会像 NSLog 一样工作,但显然不是。
theAnswer 仅作为没有“答案是”的实例变量返回
谁能告诉我为什么以及如何解决这个问题?
谢谢。
【问题讨论】:
标签: objective-c nsstring
所以,我想像这样将一个实例变量放入一个 NSString 中:
NSString *theAnswer = (@"答案是 %@\n", self.answer);
我不确定我是否正确。我认为 NSString 会像 NSLog 一样工作,但显然不是。
theAnswer 仅作为没有“答案是”的实例变量返回
谁能告诉我为什么以及如何解决这个问题?
谢谢。
【问题讨论】:
标签: objective-c nsstring
NSString *theAnswer = [NSString stringWithFormat:@"The answer is %@", self.answer];
【讨论】:
除了 dj2 答案之外,我还想指出 NSLog 是一种方法而不是对象。对象不是以("param1", param2) 的形式初始化的,对于 NSString 的情况,你做 dj2 做的事情:
NSString *theAnswer = [[NSString alloc] initWithFormat:@"The answer is %@", self.answer];
你必须将 theAnswer 声明为 NSString 指针,因为所有的 Objective-C 对象都是指针,然后再说一遍它将在哪个类下分配(在本例中为 NSString)然后你说你将如何初始化它,在这种情况下,您使用 initWithFormat: 来初始化它。
【讨论】: