我只寫了一些代碼。它有我自己定製的課程。在所謂的「WonderfulNumbers」是定製類我有一個看起來像這樣使用我沒有分配或初始化的對象
- (NSString *)storedNumberAsString {
NSString *stringToReturn = [[NSString alloc]initWithFormat:@"Hello World"];
return [stringToReturn autorelease];
}
我明明那麼#進口「WonderfulNumbers」到主和方法等 然後在我的主要我有一個IBAction爲。 它讀起來就像下面
-(IBAction)displaySomeText:(id)sender {
WonderfulNumbers *myNumber = [[WonderfulNumbers alloc]init];// Step 1
NSString *numberString = [myNumber storedNumberAsString];// Step 2
[textView insertText:numberString];// Step 3
//textView is a variable of NSTextView.
[myNumber release];// Step 4
}
我得到的循序漸進的過程,而這背後的邏輯。 2.
我明白我想知道,並試圖安撫我自己到底是什麼在步驟發生的第1步,3和4
但第2步,我裝箱一個NSString變量,名爲「 numberString',它顯然擁有上面描述的方法應用於它的名爲'myNumber'的對象。說得通。
我想知道的是,我從來沒有分配或初始化NSString類的「numberString」對象。我怎麼能夠使用它。 我知道我不釋放它,因爲它從來沒有分配過..但我只是通過[myNumber storedNumberAsString]初始化它; ?
輕微的解釋是真棒。感謝那些回覆。
P.S.我知道objective-c中的所有東西都是一個對象,但僅僅是爲了這個參數,因爲'numberString'在技術上並不是由allocate和init創建的「是否正確地調用該變量?
我想我知道這兩個只是想安慰之間的差異。
謝謝。
「numberString」存儲指向由「storedNumberAsString」,這是的NSString @「Hello World」的返回值。 「numberString」本身不是一個對象,它只是保存一個對象指針。 (你不需要把對象本身當作名稱 - 只是指向它們的指針具有名稱。) –
(有點像你有一個辦公室,有一個叫Sam,Joe和Pete的三個辦公桌,辦公桌上有這些名字,不管坐在他們旁邊的人是誰,坐在Sam身上的那個人可以搬到Pete,然後他會稱爲「皮特」,因爲沒有他的名字。) –
真棒,它現在都落入了位置。感謝一羣人。 –