0

viewController のインターフェース (.h) で:

@property (strong, nonatomic) NSMutableArray* myMutableArray;

計算方法は次のとおりです。

- (void) calculate {

    DataObject* pObj = [DataObject objStart:(dataStart) objEnd:(dataEnd) objDay:(day)];

    [myMutableArray addObject:pObj];

}

次のエラー メッセージが表示されます。

宣言されていない識別子 'myMutableArray' の使用: '_myMutableArray' のことですか?

4

2 に答える 2

1

あなたはXCode4を使用しています:)

ここでは、@synthesize を行う必要はありません。コンパイラは、すべての ivar 自体を _ivarName として作成します。つまり、

@synthesize myMutableArray=_myMutableArray;

それをオーバーライドしたい場合は、次のようにできます

@synthesize myMutableArray; 

または、このように

@synthesize myMutableArray=myMutableArray;
于 2012-11-27T13:44:48.113 に答える
1

プロパティを手動で合成していない場合 ( @synthesize myMutableArray;)、コンパイラはアンダースコア プレフィックス ( と同じ@synthesize myMutableArray = _myMutableArray) を持つ iVar を作成します。

アクセスするには、次を使用します

[_myMutableArray addObject:pObj];

また

[self.myMutableArray addObject:pObj];

このように手動で合成した場合

@synthesize myMutableArray = nameOfMyBackingIVar

この方法でアクセスできますNSMutableArray

[nameOfMyBackingIVar addObject:pObj];
于 2012-11-27T13:24:34.763 に答える