как удалить нулевое значение из nsarray? - PullRequest
2 голосов
/ 26 ноября 2010

У меня есть один массив, в котором я выбираю данные из базы данных для какого-то определенного значения, и, следовательно, ключ, в котором этого конкретного значения нет, он выбирает нулевое значение в массиве.

Теперь мой вопрос: как я могу исключить это нулевое значение из массива? Я попытался извлечь значение 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 ]

6 голосов
/ 26 ноября 2010

Получил решение при выполнении 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 голос
/ 26 ноября 2010

Не уверен, правильно ли я читаю ваш вопрос, но при условии, что вы хотите избавиться от нулевых записей в вашем массиве и от того, что они действительно @"<null>" строки:

NSMutableArray *array = ...;
for (id nullObject in array)
{
   if ([nullObject isKindOfClass:[NSString class] && [nullObject isEqualToString:@"<null>"]
   {
      [array removeObjectAtIndex:i];
   }
}
0 голосов
/ 26 ноября 2010
NSMutableArray *nulls = [NSMutableArray array];
for (id candidate in dataArray)
    if (candidate == [NSNull null])
        [nulls addObject:candidate];
[dataArray removeObjectsInArray:nulls]; // assuming dataArray is mutable
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...