[英]Why isn't NSMutableArray working?
我有一個類的NSMutableArray,在其他類中,我想對其進行初始化並添加各種對象。 但是問題是NSMutableArray沒有保留元素。 我有以下代碼:
-(void)viewDidLoad
{
[super viewDidLoad];
MyStops *myStops = [self.storyboard instantiateViewControllerWithIdentifier:@"My Stops"];
myStops.myStopsMArray = [[NSMutableArray alloc] init];
}
還有這個:
- (void) addToFavourites:(id)sender
{
UITapGestureRecognizer *gesture = (UITapGestureRecognizer *) sender;
NSInteger tag = gesture.view.tag;
UITableViewCell *cell = [stopsTable dequeueReusableCellWithIdentifier:@"cell"];
MyStops *myStops = [self.storyboard instantiateViewControllerWithIdentifier:@"Mis Paradas"];
[myStops.myStopsMArray addObject:[stopsArray objectAtIndex:tag]];
}
在另一個文件中,我聲明並合成了NSMutableArray:
//Header file
@property (nonatomic, retain) NSMutableArray *myStopsMArray;
//Implementation file
@synthesize myStopsMArray;
你能告訴我我在做什么錯嗎? 謝謝!
instantiateViewControllerWithIdentifier
創建並每次都返回新實例! 因此,您必須直接指向該視圖控制器。 在當前類的頭文件中,創建一個類似以下的屬性:
@property (strong, nonatomic) MyStops *myStopsVC;
注意:如果當前的ViewController已經從MyStops
呈現, MyStops
strong
變為weak
。 但是,如果要從此vc推送/顯示MyStops,則將其保留為strong
指針。
這就是您的MyStops
ViewController的兩個不同實例。
在您viewDidLoad
,將創建一個MyStops
視圖控制器然后alloc
/ init
它的“ myStopsMArray
” NSMutableArray
。
但是,在你addToFavorites
方法,為您打造另一種不同與全新 MyStops
實例-您沒有alloc
/ init
您myStopsMArray
財產。 因此,在該方法中, myStops.myStopsMArray
仍為nil
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.