我想問一個關於Objective-C中的'Object'和'variable'的問題。正如我們所知道的,我們可以使用很多變量來存儲對象的數據,但首先我們必須創建一個具有分配的對象。我們必須使用'alloc'關鍵字爲RAM中的對象提供內存位置。我認爲對象不能存儲數據,因爲對象是一個名詞,就像一個人。所以,爲了存儲我們需要使用變量的數據。在C或C++中,我們使用任何原始數據類型的變量來存儲數據。在Objective-C中,我們使用預定義的類如NSString
。Objective-C中'object'和'variable'的實際區別是什麼?
所以,我可以使用一個變量與我的NSString
類類型,或者我將只使用一個類對象類。
對我來說有兩個問題。
NSString *xyz = [[NSString alloc] init]; // can anyone tell me what should be 'xyz' in here a 'variable' or an 'object'?
如果'xyz'是這裏的一個對象。所以,首先我必須創造它。但我曾經見過的某處......
NSString *xyz = @"welcome"; // according to me, here we are not allocating memory for 'xyz'. Why?
這兩個聲明有什麼區別?你能告訴我嗎?
在你正在分配內存給xyz的聲明中! –
* xyz是一個指針,你正在做[nsstring alloc] init],因爲你告訴編譯器xyz現在是一個新的字符串! LATER上你可以使用xyz作爲nsstring,但不能* xyz !!!!!! –
您應該閱讀關於堆,堆棧和內存分配的一般信息。從C開始。 – FreeNickname