1

iPhoneアプリで変数を合成しようとしています

@synthesize samples=_samples;

としてsamples宣言された

@property (strong, nonatomic) NSMutableArray *samples;

ただし、_samples が存在しないというビルド エラーが発生します。なんで?

4

2 に答える 2

2

_samples実装ファイルの外からにアクセスしようとしていませんか? によって生成された ivar@synthesizeは、 が呼び出された実装の外部では表示できません@synthesize。だから、こんなことをしたら…

MyView *myView = [[MyView alloc] init];
myView._sample;

...エラーが表示されます。詳細については、https ://stackoverflow.com/a/8511046/251012 を参照してください 。

.

.

.

編集:以下のすべてが間違っています。左、コメントが意味をなすように

ivar を宣言していますか? 名前のスペルは正しいですか?

みたいなことを言うと…

@synthesize foo = _foobar;

...インターフェイスでインスタンス変数を次のように設定する必要があります...

@interface MyObject : NSObject
{
    NSString *_foobar;
}
@property(nonatomic,strong) NSString *foo;
@end

明確にするために、あなたが言うときfoo=_foobarfooゲッター/セッターを自動生成するためのベース名_foobarであり、ivar の名前です。ivar が宣言されていない場合@property、同じ名前の 1 つが自動生成されます。

于 2012-05-01T00:24:38.507 に答える
1

私の側でも同じコードが機能しています。xcode を再起動して、プロジェクトを再構築してみてください。

于 2012-04-30T23:58:57.773 に答える