我怎样才能从NSMutableArray中删除[NSNull Null]对象?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我怎样才能从NSMutableArray中删除[NSNull Null]对象?相关的知识,希望对你有一定的参考价值。

我需要删除添加的Null对象

 [mutArrSkills addObject:[NSNull null]];

我需要迭代吗?是否有任何函数可以从NSMutableArray中删除所有空值?

如果需要迭代,我该怎么做?

答案

您可以使用NSMutableArrayremoveObjectIdenticalTo:方法,如下所示

[mutArrSkills removeObjectIdenticalTo:[NSNull null]];

删除空值。无需迭代。

另一答案

removeObjectIdenticalTo:

删除数组中所有出现的给定对象。

讨论此方法使用indexOfObjectIdenticalTo:方法查找匹配项,然后使用removeObjectAtIndex:删除它们。因此,使用对象地址确定匹配。如果数组不包含anObject,则该方法无效(尽管它会产生搜索内容的开销)。

另一答案

你可以尝试这样做,

NSNull *nullValue = [NSNull null]; 

[mutArrSkills removeObjectIdenticalTo:nullValue];

我希望这有帮助。

另一答案

在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]
另一答案

你可以像这样迭代。

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

以上是关于我怎样才能从NSMutableArray中删除[NSNull Null]对象?的主要内容,如果未能解决你的问题,请参考以下文章

我如何对 NSMutableArray iphone 进行排序?

从 NSMutableArray 中删除对象时崩溃

从 NSmutableArray 中删除项目

从 UITableView NSMutableArray 和 ManagedObjectContext 中删除行

通过 UITableView 从 NSMutableArray 中删除项目

从 PLIST 中的 NSMutableArray 中删除项目