根據蘋果的objective-c文檔,NSObject使用C指針來跟蹤它們。我對iOS相當陌生,並且將NSObject上的指針操作與C指針進行比較會讓人困惑。 例如:Objective-C/NSObject指針與C指針相比
NSString *string1 = @"This is a string";
NSString *string2;
string2 = string 1;
在C,(糾正我,如果我錯了,請)此= B/W 2個指針使得它們指向同一個「指針對象」。這意味着改變string1也應該改變string2。但它似乎並沒有像這樣工作,並且NSStrings無論如何都是不可改變的,所以這增加了一些混淆。
string1 = @"new string";
如果這些指針像C的指針操作,不是不應該這樣改變字符串2,因爲它指向同一個地方字符串1。另外,在C中,必須先將指針分配給指針,然後才能解除引用。此規則似乎不適用於NSObject。什麼是'@'在做什麼?最後,爲什麼不讓我曾經看到NSObjects發生像提領:
*string1 = @"modifying the string"; //shouldn't this be how to access the contents of the pointer string1 if it operates like a c pointer?
有人能闡明什麼是Objective-C的指針引擎蓋下正在進行一些光,以及他們如何比較和對比C指針?任何幫助將不勝感激。
更改一個字符串字符串的const char []'在C中是未定義的行爲(我也非常確定在Objective-C中)。那麼有什麼意義呢? – Olaf