6

我想使用雙指針,並試圖像這樣聲明。如何使用雙指針聲明NSString的變量

NSString **a; 

但是,Xcode顯示錯誤「指向非常量類型'NSString *'沒有明確的所有權」,並且它無法編譯。

最後我想這樣做。

NSString **a; 
NSString *b = @"b"; 
NSString *c = @"c"; 
a = &b; 
*a = c; 

NSLog(@"%@",b);//I wanna see "c" 

請讓我知道任何建議。

+0

您顯示的代碼完全合法。沒有更多的背景,我認爲我們不能回答你的問題。 – 2013-02-28 22:19:01

+1

@CarlNorum除了自動 - 「smartass」 - 引用計數進入圖像...然後它使編譯器抱怨每一個小動量... – 2013-02-28 22:19:30

+0

哦,我看到...忘了這一點。 ARC比我停止編寫任何Objective-C代碼時更新。 – 2013-02-28 22:20:00

回答

11

更改到這一點,以便可以明確所有權:

NSString *__strong *a; 
NSString *b = @"b"; 
NSString *c = @"c"; 
a = &b; 
*a = c; 

NSLog(@"%@",b);//I wanna see "c" 

輸出:對__strong

c 

Here is the documentation

+1

謝謝!是的,這是完美的答案:) – 2013-02-28 22:27:34

+0

我看到一堆objc代碼與類型**名稱聲明。這是否被棄用? – mihai 2014-10-29 03:01:11