1

If I create property, for example:

@property NSString *selectedSubProductId;

and create setter and getter:

- (NSString *)selectedSubProductId {}

- (void)setSelectedSubProductId:(NSString *)value_ {}

XCode says that "Deault property attribute 'assign' not appropriate for non-gc object". Do attributes have any meaning in this case? Does it matter if i make them copy or assign or are they only cue for @synthesize to create desired methods? If so, how should I disable the warnings?

4

2 に答える 2

1

オブジェクトの場合は、retain/copy プロパティ修飾子を使用する必要があります。

例えば:

@property (nonatomic, retain) NSString *selectedSubProductId;

修飾子がない場合、修飾子はassignデフォルトで有効になります。intただし、スカラー ( 、float...) またはに対してのみ有効ですstruct

詳細については、Apple のドキュメントを参照してください。

于 2012-09-17T09:20:27.467 に答える
0

この警告は、オブジェクトをどのように保持するかを忘れたため、デフォルトのプロパティ属性 (割り当て) を使用していることを示しています。

警告を「削除」したい場合は、retain/copy プロパティを使用します。 @property (copy) NSString *selectedSubProductId;

ただし、文字列ではコピーを使用する必要があります。詳細については、stackoverflow のこの質問にアクセスしてください。

于 2012-09-17T09:21:56.163 に答える