簡體   English   中英

為什么NSMutableArray不起作用?

[英]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它的“ myStopsMArrayNSMutableArray

但是,在你addToFavorites方法,為您打造另一種不同與全新 MyStops實例-您沒有alloc / initmyStopsMArray財產。 因此,在該方法中, myStops.myStopsMArray仍為nil

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM