2010-10-10 95 views
7

所以,我想提出一个实例变量成的NSString这样的:的NSString与实例变量

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

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

theAnswer返回,因为只有实例变量没有“答案是”

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

谢谢。

回答

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

谢谢你,工作。 – TheAmateurProgrammer 2010-10-10 03:39:11

+3

@theAmateurProgrammer:那么你应该接受他的答案。 – 2010-10-10 03:40:29

0

我还想指出,除了dj2答案,NSLog是一种方法不是对象。对象不在的("param1", param2)的形式的NSString的情况下初始化你做什么DJ2做:

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

,你必须声明theAnswer作为的NSString指针,因为所有的Objective-C对象的指针,然后再说它将分配什么类(在本例中为NSString),然后你说你将如何初始化它,在这种情况下,你正在使用initWithFormat:来初始化它。

+0

谢谢你的回答。我想问问,如果我初始化了NSString,会有什么不同? – TheAmateurProgrammer 2010-10-10 12:19:23

+0

@theAmeratureProgrammer:实际上,在这之后问了一个问题,用这种方式初始化它不会自动释放它,但另一种方式会这样做。所以,请选择。 – 2010-10-10 22:00:07