问题
i have array of birthdates as array is getting filled from facebook so there are some friends whos birthdates are private so it contain NULL how to convert that array like empty string wherever there is null value the array is like below
"<null>",
"10/29/1988",
"11/13",
"03/24/1987",
"04/25/1990",
"03/13",
"01/01",
"<null>",
"12/15/1905",
"07/10",
"11/02/1990",
"12/30/1990",
"<null>",
"07/22/1990",
"01/01",
"07/17/1989",
"08/28/1990",
"01/10/1990",
"06/12/1990",
回答1:
The null
values appear to be string literals @"<null>"
rather than the NSNull
objects typically used to represent nil
s in Cocoa collections. You can filter them out by using NSArray
's filteredArrayUsingPredicate
method:
NSArray *filtered = [original filteredArrayUsingPredicate:pred];
There are several ways of making the pred
, one of them is
NSPredicate *pred = [NSPredicate predicateWithBlock:^BOOL(id str, NSDictionary *unused) {
return ![str isEqualToString:@"<null>"];
}];
回答2:
You have to use this to remove the actual [NSNull null] value.
[array removeObjectIdenticalTo:[NSNull null]];
回答3:
This works for me:
NSMutableArray *array = [NSMutableArray arrayWithObjects:
@"<null>",
@"10/29/1988",
@"11/13",
@"03/24/1987",
@"04/25/1990",
@"03/13",
@"01/01",
@"<null>",
@"12/15/1905",
@"07/10",
@"11/02/1990",
@"12/30/1990",
@"<null>",
@"07/22/1990",
@"01/01",
@"07/17/1989",
@"08/28/1990",
@"01/10/1990",
@"06/12/1990", nil];
NSLog(@"%d", [array count]);
NSString *nullStr = @"<null>";
[array removeObject:nullStr];
NSLog(@"%d", [array count]);
回答4:
In order to remove null values use :
[yourMutableArray removeObjectIdenticalTo:[NSNull null]];
You don't need iterate over.
回答5:
for(int i = 0;[yourMutableArray count] > 0;i++){
if([yourMutableArray isKindOfClass:[NSNull class]]){ // indentifies and removes null values from mutable array
[yourMutableArray removeObjectAtIndex:i];
// or
[yourMutableArray replaceObjectAtIndex:i withObject:@"No date available"];
NSLog(@"*** %@",yourMutableArray);
}
}
回答6:
For json response I removed null values like this
NSArray *arr = [NSArray arrayWithObjects:_IDArray, _TypeArray, _NameArray, _FlagArray, nil];
for (int i=0; i<_integer; i++) {
// My json response assigned to above 4 arrayes
//Now remove null values
//Remove null values
for (int j=0; j<arr.count; j++) {
for (NSMutableArray *ar in arr) {
if ([[ar objectAtIndex:i] isKindOfClass:[NSNull class]] || [[ar objectAtIndex:i] isEqualToString:@"null"]) {
[ar addObject:@""];//Add empty value before remove null value
[ar removeObjectAtIndex:i];
}
}
}
}
Now remove empty values
//Add arrays to mutable array to remove empty objects
NSArray *marr = [NSArray arrayWithObjects:_IDArray, _TypeArray, _NameArray, _FlagArray, nil];
//Remove empty objects from all arrays
for (int j=0; j<marr.count; j++) {
for (int i=0; i<[[marr objectAtIndex:j] count]; i++) {
if ([[[marr objectAtIndex:j] objectAtIndex:i] isEqualToString:@""]) {
[[marr objectAtIndex:j] removeObjectAtIndex:i];
}
}
}
来源:https://stackoverflow.com/questions/15292037/how-to-remove-null-values-from-nsmutablearray-ios