2012-02-08 2 views
13

Мне нужно удалить Null объект добавленКак я смогу удалить [NSNull Null] объекты из NSMutableArray?

[mutArrSkills addObject:[NSNull null]]; 

мне нужно перебирать делать? Есть ли функция для удаления всех нулевых значений из NSMutableArray?

Если вам нужно Итератировать, как я это сделаю?

+1

removeObjectIdenticalTo также собирает репетицию массива, так почему бы вам не оценить его. –

ответ

30

Вы можете использовать метод removeObjectIdenticalTo:NSMutableArray «s, как следует

[mutArrSkills removeObjectIdenticalTo:[NSNull null]]; 

удалить нулевые значения. Не нужно итерации.

+0

Вы уверены, что? Я не потому, что «объекты считаются идентичными, если их адреса объектов одинаковы». Как вы знаете, '[NSNull null]! = [NSNull null]' ... – Nekto

+0

Да, насколько это касается в этом случае, элементы, добавленные '[mutArrSkills addObject: [NSNull null]] ;; являются удален с этим вызовом. – Ilanchezhian

+0

Yes.it работает нормально – Heena

1

removeObjectIdenticalTo:

Удаляет все вхождения данного объекта в массиве.

Обсуждение Этот метод использует indexOfObjectIdenticalTo: метод, чтобы найти спички, а затем удаляет их с помощью removeObjectAtIndex :. Таким образом, совпадения определяются с использованием адресов объектов. Если массив не содержит anObject, метод не имеет никакого эффекта (хотя на него накладываются накладные расходы на поиск содержимого).

+0

Вы уверены, что? Я не потому, что «объекты считаются идентичными, если их адреса объектов одинаковы». Как вы должны знать, '[NSNull null]! = [NSNull null]' ... – Nekto

+0

@Nekto pls ссылается на мой ответ. – sElanthiraiyan

-1

Вы можете повторить так.

for(int i=0,i<[mutArrSkills count]; i++) 
{ 
    if([[mutArrSkills objectAtIndex:i] isKindOfClass:[NSNull Class]]) 
    { 
    [mutArrSkills removeObjectAtIndex:i]; 
    } 
} 
+2

Это не работает вообще, если у вас есть два последовательных объекта NSNull в массиве. – gnasher729

1

Вы можете попробовать сделать это,

NSNull *nullValue = [NSNull null]; 

[mutArrSkills removeObjectIdenticalTo:nullValue]; 

Я надеюсь, что это помогает.

Смежные вопросы