2010-10-10 99 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