6

ダブルポインタを使いたいと思います。このように宣言しようとしました。ダブルポインタでNSStringの変数を宣言する方法

NSString **a; 

しかし、Xcodeは「明示的な所有権と非const型 『NSStringの*』へのポインタ」私にエラーを示し、それはコンパイルすることができませんでした。

最後に私はこのようにしたいと思います。

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

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

私に何かアドバイスをお願いします。これに

+0

あなたが表示したコードはすべて正当です。それ以上の文脈がなければ、私はあなたの質問に答えることはできないと思います。 –

+1

@CarlNorum Automatic- "smartass" - 参照カウントが画像に来る場合を除いて...コンパイラはそれぞれの小さな勢いに不平を言うようになります... –

+0

ああ私は...忘れています。 ARCはObjective-Cコードの作成をやめたときより新しいです。 –

答えて

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

ありがとう!はい、これは完璧な答えです:) –

+0

iveは、タイプ**の名前の宣言でobjcコードの束を見ました。それは廃止されましたか? – mihai