NSString与实例变量

7

所以,我想把一个实例变量放入 NSString 中,就像这样:

NSString *theAnswer = (@"The answer is %@\n", self.answer);

我不确定我是否正确。我认为 NSString 会像 NSLog 一样工作,但显然它并不是这样的。

theAnswer 只返回实例变量而没有 "The answer is"。

有人能告诉我为什么以及如何解决这个问题吗?

谢谢。

2个回答

17
NSString *theAnswer = [NSString stringWithFormat:@"The answer is %@", self.answer];

0
我还想补充一点,与dj2的回答相比,NSLog是一个方法而不是一个对象。对象不是以("param1", param2)的形式进行初始化的。对于NSString的情况,你可以像dj2一样操作:
NSString *theAnswer = [[NSString alloc] initWithFormat:@"The answer is %@", self.answer];

在这里,你需要将theAnswer声明为NSString指针,因为所有的Objective-C对象都是指针。然后再次说明它将被分配到哪个类下面(在这种情况下是NSString),然后说明你将如何初始化它,在这种情况下,你将使用initWithFormat:来初始化它。


谢谢您的回答。我想问一下,如果我初始化NSString和不初始化有什么区别? - TheAmateurProgrammer
@theAmeratureProgrammer:实际上,我在这之后问了一个问题,用这种方式初始化不会自动释放它,但另一种方式会这样做。所以,你可以自己选择。 - thyrgle

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接