プロジェクトをARCに変換しようとしています。このプロジェクトには、無指向性の有向グラフがあり、基本的にはどこにでも二重間接ポインタがたくさんあります。プロジェクトを二重間接指定のARCに変換するポインタ割り当て
これはARCに変換するのが非常に難しいことを証明しています。特に、現在のところ私は困っています。
ここにシナリオがあります。
のは、あなたが持っているとしましょうNSString *
:
NSString *b = [[NSString alloc] initWithString:@"hello"];
あなたはまた、二重間接のタイプがあります:あなたは、次のように一方を他方に割り当てる
__unsafe_unretained NSString **a;
を:
a = &b;
これは変換エラーを返します:
error: assigning 'NSString *__strong *' to 'NSString *__unsafe_unretained *' changes retain/release properties of pointer
b
から__unsafe_unretained
に変更することはできません。私はまた、様々なブリッジキャストを試みました。私はここで何かを見逃していますか?
アイデア?
ありがとうございます!
することができますは、constのQずにそれを行うための方法がありますualifier? * aに値を割り当てる必要がありますか? –
NSString * b = [[NSString alloc] initWithString:@ "hello"]; NSString * __ strong * a; a =&b; –
しかし、私はこれが良い理由だとは思わない。なぜなら、ARCはポインタへのポインタを「メモリ管理」しないからである(これがデフォルトの* __自動解放*である理由)。 –