我有一个数组,我从数据库中获取某些特定值的数据,因此该特定值不存在的键,它在数组中获取空值。
现在,我的问题是如何从数组中消除该空值?我试图将nsarray值提取到nsstring然后再提取到另一个数组,但是它不是获取整个数组,而是获取最后一个索引值。
请帮帮我。谢谢。
我附上代码以供进一步参考:
NSString *url = [NSString stringWithFormat:@"webservice from where i m fetching data"];
NSLog(url);
NSMutableURLRequest *request=[NSMutableURLRequest requestWithURL:[NSURL URLWithString:url]];
[request setHTTPMethod: @"POST"];
NSData *returnData = [ NSURLConnection sendSynchronousRequest:request returningResponse: nil error: nil ];
NSString *returnString = [[NSString alloc] initWithData:returnData encoding: NSUTF8StringEncoding];
dataArray=[[returnString JSONValue] retain];
[self setAlldetails:dataArray];
nsarray *InteName = [alldetails valueForKey:@"IntelligenceName"];
所以数组为数组InteName提取值,如下所示:
(
"00:00:00",
"00:00:00",
"17:15:00",
"17:15:00",
"17:15:00",
"17:15:00",
"00:00:00",
"00:00:00",
"17:15:00",
"17:15:00",
"17:15:00",
"17:15:00",
"<null>",
"<null>",
"<null>",
"<null>",
"<null>",
"<null>",
"<null>",
"<null>",
"<null>"
)
所以现在,我想删除值null的出现。
任何猜测?
答案 0 :(得分:6)
在做T&amp; T时获得解决方案E:
NSMutableArray *array = [[NSMutableArray alloc]init];
array = [InteName retain];
NSLog(@"Array : : %@",array);
NSMutableArray *array1 = [[NSMutableArray alloc]init];
NSString *str;
for(int i=0;i<[array count];i++)
{
str = [array objectAtIndex:i];
if(str !=[NSNull null])
{
[array1 addObject:str];
//[array removeObjectAtIndex:i];
}
}
答案 1 :(得分:1)
不确定我是否正确阅读了您的问题,但假设您想要删除数组中的空条目并且它们实际上是@"<null>"
字符串:
NSMutableArray *array = ...;
for (id nullObject in array)
{
if ([nullObject isKindOfClass:[NSString class] && [nullObject isEqualToString:@"<null>"]
{
[array removeObjectAtIndex:i];
}
}
答案 2 :(得分:0)
NSMutableArray *nulls = [NSMutableArray array];
for (id candidate in dataArray)
if (candidate == [NSNull null])
[nulls addObject:candidate];
[dataArray removeObjectsInArray:nulls]; // assuming dataArray is mutable