Как я смогу удалить объекты [NSNull Null] из NSMutableArray? - PullRequest
13 голосов
/ 08 февраля 2012

Мне нужно удалить объект Null, добавленный

 [mutArrSkills addObject:[NSNull null]];

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

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

Ответы [ 5 ]

31 голосов
/ 08 февраля 2012

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

[mutArrSkills removeObjectIdenticalTo:[NSNull null]];

, чтобы удалить нулевые значения.Нет необходимости повторять.

1 голос
/ 08 февраля 2012

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

NSNull *nullValue = [NSNull null]; 

[mutArrSkills removeObjectIdenticalTo:nullValue];

Надеюсь, это поможет.

1 голос
/ 08 февраля 2012

removeObjectIdenticalTo:

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

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

0 голосов
/ 20 марта 2019

В Swift вы сначала должны привести свое Swift Array к NSArray, сделать и сделать его изменяемым, чтобы вы могли удалить оставшиеся Objective-C элементы, а затем вернуть его к Array.

Fatal error: NSArray element failed to match the Swift Array Element type

// my crashing array, containing a not String element, like NSNull or anything else
let myUnsafeSwiftArray: [String]

// make it safely NSArray, then make it mutable
let mutableUnsafeArray = NSMutableArray(array: myUnsafeSwiftArray as NSArray)

// remove leftover class, like [NSNull null] aka NSNull.init()
unsafeTextures.removeObject(identicalTo: NSNull.init())

// Cast the safe array back to its supposed to by element type
let safeArray = unsafeTextures as? [String]
0 голосов
/ 08 февраля 2012

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

for(int i=0,i<[mutArrSkills count]; i++)
{
  if([[mutArrSkills objectAtIndex:i] isKindOfClass:[NSNull Class]])
    {
    [mutArrSkills removeObjectAtIndex:i];  
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...