我试图在用户离线时显示所选的单元格复选标记,但是数组没有添加另一个数组对象,请帮助我
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];
答案 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];