如何消除nsarray中的空值?

Sar*_*rah 2 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"];
Run Code Online (Sandbox Code Playgroud)

所以数组获取数组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>"
)
Run Code Online (Sandbox Code Playgroud)

所以现在,我想删除值null的出现.

任何猜测?

Sar*_*rah 6

在做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];
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 一个建议:if(![str isKindOfClass:[NSNull class]])而不是if(str!= [NSNull null]).后者发出警告. (3认同)