1

簡単な質問: C++ と struct の構文を学びました。iOSアプリでデータを保存するために構造体を使用したいのですが、ARCは構造体の通常の使用を許可していません。問題の解決策はありますか?

struct fruit {
    int a;
};

_

{
struct fruit apple;
apple.a = 1;
return 0;
}

たとえば、この問題を NSMutableArray で解決することは可能ですか? ところで、どこでそれを定義する必要がありますか? .m ファイルまたは .h ファイル?

よろしくCTS

4

1 に答える 1

4

もちろん、ARC でも、Objective-C で構造体を使用することは許可されています。指定した構造体にはまったく問題はありません。

struct fruit {
    int a;
};

ARC で発生する唯一の問題は、Objective-C オブジェクトを含む構造体です。これは、ARC がそれらのオブジェクトを管理する方法を認識していないためです。ただし__unsafe_unretained、を使用して、コンパイラに「何をしているのか知っている」ことを知らせることができます。

struct foo {
    __unsafe_unretained NSString *bar;
};

barこの場合は単なるポインターであり、強い参照ではなく、ARC によって管理されます。Apple は、これらの場合、可能な限り単純なクラスを使用することをお勧めします。

于 2012-12-20T15:08:58.720 に答える