iPhoneアプリで変数を合成しようとしています
@synthesize samples=_samples;
としてsamples
宣言された
@property (strong, nonatomic) NSMutableArray *samples;
ただし、_samples が存在しないというビルド エラーが発生します。なんで?
iPhoneアプリで変数を合成しようとしています
@synthesize samples=_samples;
としてsamples
宣言された
@property (strong, nonatomic) NSMutableArray *samples;
ただし、_samples が存在しないというビルド エラーが発生します。なんで?
_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=_foobar
、foo
ゲッター/セッターを自動生成するためのベース名_foobar
であり、ivar の名前です。ivar が宣言されていない場合@property
、同じ名前の 1 つが自動生成されます。
私の側でも同じコードが機能しています。xcode を再起動して、プロジェクトを再構築してみてください。