0

私はこれがばかげた質問であることを知っていますが、この @property 宣言と中括弧内の宣言の違いは何ですか、または私もできることです

@property(nonatomic, strong) NSMutableString *current

中括弧内に書く代わりにリストも

@interface XMLParser : NSObject <NSXMLParserDelegate>
{

    NSMutableString *currentList;
    NSXMLParser *parser;
    dataFileHolder *dataCurrent;
}

@property(nonatomic, strong) NSMutableArray *listPopulated;
4

2 に答える 2

2

ゲッターとセッターで宣言すると@property、プロパティに設定したパラメーターに基づいて自動生成されます。この例では、setter と getter は非アトミックであり、強い参照で保存されます。

一方、中括弧で定義すると、変数のみが作成されます (getter と setter はありません)。

ここに私のより完全な説明があります

于 2013-08-22T11:40:13.720 に答える
0

中括弧内でオブジェクトを宣言すると、そのオブジェクトはそのクラス @interface XMLParser のみが使用されます: NSObject {

NSMutableString *currentList;
NSXMLParser *parser;
dataFileHolder *dataCurrent;

}

しかし、このように @property を使用してオブジェクトを宣言している場合

@property(nonatomic, strong) NSMutableArray *listPopulated;

つまり、この NSMutableArray を別のクラスでも使用できます

@property と合成の間には、getter セッター メソッド @property がセッターとして機能し、@synthesis がゲッターとして機能するような関係があります。

于 2013-08-22T11:40:40.540 に答える