0

我在下面有这段代码,我正在尝试将对象(字符串元素)添加到数组中,问题是每次我使用它的添加方法时,它都会变为 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;

在他们中:

-(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 回答