Objective c 带有实例变量的NSString

Objective c 带有实例变量的NSString,objective-c,nsstring,Objective C,Nsstring,因此,我想将一个实例变量放入NSString中,如下所示: NSString*theAnswer=(@“答案是%@\n”,self.answer) 我不确定我是对还是错。我原以为NSString会像NSLog一样工作,但显然不是 answer仅返回不带“答案是”的实例变量 有人能告诉我为什么以及如何解决这个问题吗 谢谢。除了dj2答案之外,我还想指出,NSLog是一种方法,而不是对象。对象不是以(“param1”,param2)的形式初始化的。对于NSString,您可以像dj2那样执行以下操作

因此,我想将一个实例变量放入NSString中,如下所示:

NSString*theAnswer=(@“答案是%@\n”,self.answer)

我不确定我是对还是错。我原以为NSString会像NSLog一样工作,但显然不是

answer仅返回不带“答案是”的实例变量

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


谢谢。

除了dj2答案之外,我还想指出,NSLog是一种方法,而不是对象。对象不是以
(“param1”,param2)
的形式初始化的。对于NSString,您可以像dj2那样执行以下操作:

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

您必须将答案声明为NSString指针,因为所有Objective-C对象都是指针,然后再次说明它将在哪个类下分配(在本例中为NSString),然后说明如何对其进行初始化,在本例中,您使用
initWithFormat:
对其进行初始化。

谢谢您的回答。我真的想问一下,如果我初始化NSString与否会有什么不同?@theAmeratureProgrammer:事实上,我在这之后问了一个问题,以这种方式初始化它不会自动解除锁定,但另一种方式会自动解除锁定。所以,你挑吧。