[英]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.