如何消除nsarray中的空值?

时间:2010-11-26 07:03:35

标签: iphone nsarray

我有一个数组,我从数据库中获取某些特定值的数据,因此该特定值不存在的键,它在数组中获取空​​值。

现在,我的问题是如何从数组中消除该空值?我试图将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的出现。

任何猜测?

3 个答案:

答案 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