0

重複の可能性:
iOS: すべての iVar は本当にプロパティである必要がありますか?

一部のプロパティが interface ステートメントで定義され、一部が @property として定義されている理由を誰かが説明してくれれば、本当にありがたいです。

@interface PlacesParser : NSObject
{
    NSMutableArray *arrPlaces;   

    TBXML *tbxml;
}

@property(nonatomic,retain) NSMutableArray *arrPlaces;

-(void)loadRecords:(NSString *)records;
-(void)traverseElement:(TBXMLElement *)element;

@end

私の例では、@property として "arrPlaces" を取得しました

インターフェイス内の「arrPlaces」。

4

2 に答える 2

3

インターフェイス内のものは実際にはプロパティではなく、単純な古いインスタンス変数です。@propertyステートメントは、それをプロパティにするものです(セッターとゲッターを提供します)。以前は両方が必要でしたが、もう必要ありません。フィールドをこれらの生成されたメソッドを持つプロパティにしたい場合は、最初のフィールド宣言を省略できます。

于 2012-06-28T18:31:56.827 に答える
0

Objective-Cのivarとプロパティの違いは何ですか?

このスレッドは本当に私の目を開きました。私の質問に対する素晴らしい説明。

于 2012-06-28T19:10:32.210 に答える