我一直在寻找一段时间如何删除nil,null,值在这里和谷歌尝试所有我所看到的但我总是有一个例外,说选择器不兼容。 这是我的Array和带有NSMutableDictionary
的NSMutableArrayArray Value = (
{
"sub_desc" = "sub cat description of Laptop";
"sub_name" = Laptop;
},
{
"sub_desc" = "sub cat description of Printers";
"sub_name" = Printers;
},
"<null>",
"<null>",
"<null>",
"<null>"
)
我试图删除值,任何想法?
我的segue就像这样
-(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if ([segue.identifier isEqualToString:@"MySegue"]) {
ChildTableViewController *myNextPage = [segue destinationViewController];
if ([myNextPage isKindOfClass:[ChildTableViewController class]]){
NSString *key = [[[parsedData listPopulated]objectAtIndex:self.tableView.indexPathForSelectedRow.row]valueForKey:@"name"];
myNextPage.childData = [[parsedData childPopulated]valueForKey:key];
}
}
}
和childData是我的Child View Controller中的NSMutableArray,而childPopulated是一个NSMutableArray,我插入NSMutableDictionary。
答案 0 :(得分:4)
使用[NSMutableArray removeObject:]
:
删除给定对象数组中的所有匹配项。
NSMutableArray *array = ...;
[array removeObject:@"<null>"];
注意:您的数组包含字典和字符串对象的混合;不只是字典对象。
答案 1 :(得分:2)
此代码应该是:
NSMutableIndexSet *indexSet;
for (NSUinteger i = 0; i < [array count]; i++) {
if (![array[i] isKindOfClass:[NSNull class]]) {
[indexSet addIndex:i]
}
}
array = [array objectsAtIndexes:indexSet]
如果要删除字符串 null 的对象,则:
NSMutableIndexSet *indexSet;
for (NSUinteger i = 0; i < [array count]; i++) {
if ([array[i] isKindOfClass:[NSString class]] && [array[i] isEqualToString:@"<null>") {
[indexSet addIndex:i]
}
}
[array removeObjectsAtIndexes:indexSet]