[英]Array loses all values after go trough its own method - Objective C
我下面有这段代码,我试图将Objects(String elements)添加到数组中,问题是每次我退出添加方法时,它都变为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];
好吧,这是您的问题-您正在分配init的是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]
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.