无法在另一个数组中添加数组的对象

时间:2016-02-01 07:23:24

标签: ios objective-c iphone arrays

我试图在用户离线时显示所选的单元格复选标记,但是数组没有添加另一个数组对象,请帮助我

1. appDelegate.SelectedIDArray保存所选单元格 2. buildingObject.selectedIDString保存已检查的细胞索引昏迷分离

  

//首先我要删除数组中的所有对象

[appDelegate.SelectedIDArray removeAllObjects];

  

//然后我在数组中添加字符串值(例如3,2,7)

 NSMutableArray *tempArray = (NSMutableArray*)[buildingObject.selectedIDString componentsSeparatedByString:@","];
  

//现在在appDelegate.SelectedIDArray中添加tempArray数组对象

[appDelegate.SelectedIDArray addObjectsFromArray:tempArray];
  

//现在显示appDelegate.SelectedIDArray中添加对象的数量

txtID.text=[NSString stringWithFormat:@"%zd of 23 selected",appDelegate.SelectedIDArray.count];

5 个答案:

答案 0 :(得分:0)

离线说,你的意思是应用程序被终止,如果你没有在NSUserDefaults中保存你的数组,那么它已经是零了。那么你应该初始化它。如果不是这种情况,appDelegate可能会出现另一个问题:

AppDelegate *appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
NSString *vals = @"1,2,3,4,5,6,7,8";
    NSMutableArray *tempArray = [[vals componentsSeparatedByString:@","] mutableCopy];
    if (!appDelegate.SelectedIDArray) {
        appDelegate.SelectedIDArray = [NSMutableArray new];
    }
    else
    { 
        [appDelegate.SelectedIDArray removeAllObjects];
    }
    [appDelegate.SelectedIDArray addObjectsFromArray:tempArray];
    NSLog(@"%@", appDelegate.SelectedIDArray);

答案 1 :(得分:0)

我已经采用了类似于您的代码的示例测试用例:

NSString *str1 = @"1,2,3,4,5,6,7,8,9";
NSMutableArray *tempArray = (NSMutableArray*)[str1 componentsSeparatedByString:@","];
NSMutableArray *arr = [NSMutableArray array];
[arr addObjectsFromArray:tempArray];
NSLog(@"%@",arr);

它对我来说很好。确保appDelegate.SelectedIDArray是NSMutableArray。或者如果你想要新的阵列,只需使用

appDelegate.SelectedIDArray = [NSMutableArray arraywitharray:tempArr];

希望这有帮助。

答案 2 :(得分:-1)

我希望你不要忘记分配appDelegate.SelectedIDArray。

答案 3 :(得分:-1)

大家好,请试试这个

NSArray *tempArray = [buildingObject.selectedIDString componentsSeparatedByString:@","];

[appDelegate setSelectedIDArray:[tempArray mutableCopy]];

如果它不起作用,那么你的一个数组可能是空的。请检查

答案 4 :(得分:-1)

使用它,如果你使用非弧,它将会修复 appDelegate.SelectedIDArray = [tempArray retain];