2017-02-15 44 views
-2

this答案,它說那麼我們總是需要變量來指向Objective C中的對象嗎?

NSString *string = [NSString new]; // A variable string referring a string object; 
string = @"john"; // The object, string refers to is now "string" 

理論上的NSString是一類和字符串是隨着這個我讀的地方,在Objective-C這是考慮由[的NSString新]代碼,內存中的對象,我們總是有指針對象。

我想了解它在現實生活中的例子,假設我去豐田局(NSString類)購買的豐田普銳斯(String對象)。現在我有我的書包(約翰)左邊是車這是在我的地下室停車。

  1. 所以字符串是一個指針對象或指針變量,這是我的普銳斯?
  2. 是指內存中的對象,內存是車庫還是代理?

任何人都可以幫忙弄清楚變量,指針和對象是如何相互關聯的?

+2

的可能的複製[爲什麼NSString的stringWithString返回指針複製字符串?](http://stackoverflow.com/questions/11890814/why-is-nsstring-stringwithstring-returning-pointer-複製串) – 2017-02-15 10:32:21

+0

@Sneak是的,它是我已經在我的問題中已經提到的答案的重複,但不是你的建議,反正謝謝。 – Rishi

+1

您的問題鏈接與我的評論副本不一樣。我不確定你還需要知道更多,你是否閱讀過重複的鏈接?你需要知道的一切都在那裏,除非你想知道更多的東西嗎? – 2017-02-15 11:27:54

回答

1
  1. 對象&變量是(在此上下文中)語法糖,既可以總是使用。
    是的,那是你普銳斯
  2. 它是在由對象@"john"

書包 & 約翰佔據內存指的是值是不一樣的東西。
約翰是存儲在string指向的內存位置的值。
從你在說什麼,書包左邊是車書包看起來像string對象的屬性。 所以,

Toyota_Agency prius = [Toyota_Agency new]; 
prius = @"john"; 
prius.schoolBag = @"Some school bag"; 
+0

所以我可以說普林斯是「指針變量」或「指針對象」,並可以說我們沒有分配內存,但豐田汽車*普銳斯;' 這只是一個變量或對象,因爲內存未分配,它可以指向? – Rishi

+0

是的,'Toyota_Agency * prius;'目前指向無 – ystack

相關問題