0

以下にこのコードがあり、Objects(String要素)を配列に追加しようとしています。問題は、addingのメソッドを実行するたびに、nilになり、オブジェクトが保持されないことです。

自分のコンストラクター_MyArrayなどを使用しても、すでに多くの組み合わせやバリエーションを試したとしても、間違っていることはわかっています。同じ結果になります...動作しますが、それ以上は動作しません...

私を手伝ってくれますか?

@interface ArraysModel()
@property (nonatomic, retain) NSMutableArray *MyArray;
@end

@implementation ArraysModel
@synthesize MyArray;

-(void)AddObjectToTheList:(NSString *)object {

    if(!MyArray) MyArray = [[NSMutableArray alloc] init];
    [MyArray addObject:object];
    NSLog(@"%@",self.MyArray);
    NSLog(@"Object added %u",[self.MyArray count]);
}
-(NSMutableArray *)ObjectList {

    return self.MyArray;
    NSLog(@"%@",self.MyArray);
    NSLog(@"Object added %u",[self.MyArray count]);
}

@end

ヘッダーは次のようになります。

@interface ArraysModel : NSObject

-(void)AddObjectToTheList:(NSString *)object;

そして、これが私のViewControllerからの呼び出しです。

- (IBAction)AddToTheList {

    ArraysModel *MyObjectToAdd = [[ArraysModel alloc] init];
    [MyObjectToAdd AddObjectToTheList:TextArea.text];
    [self.view endEditing:YES];
4

1 に答える 1

0

さて、あなたの問題があります-あなたはArraysModelの新しいインスタンスを割り当てているので、すべての呼び出しで新しい配列を割り当てています。インスタンスへの強力な参照を作成し、インスタンスが終了するかどうかを確認し、終了しない場合にのみ初期化する必要があります。

.h:

@property (strong, nonatomic) ArraysModel *myObjectToAdd;

.mで:

-(IBAction)AddToTheList {
    if (! self.myObjectToAdd) { 
        self.myObjectToAdd = [[ArraysModel alloc] init];
    } 
   [self.myObjectToAdd AddObjectToTheList:TextArea.text]; 
   [self.view endEditing:YES]
}
于 2012-11-09T02:27:01.710 に答える