我需要删除
添加的Null对象 [mutArrSkills addObject:[NSNull null]];
我需要迭代吗?是否有任何函数可以从NSMutableArray中删除所有空值?
如果需要迭代,我该怎么做?
答案 0 :(得分:31)
您可以使用NSMutableArray的removeObjectIdenticalTo:
方法,如下所示
[mutArrSkills removeObjectIdenticalTo:[NSNull null]];
删除空值。无需迭代。
答案 1 :(得分:1)
删除数组中所有出现的给定对象。
<强>讨论强> 此方法使用indexOfObjectIdenticalTo:方法查找匹配项,然后使用removeObjectAtIndex:删除它们。因此,使用对象地址确定匹配。如果数组不包含anObject,则该方法无效(尽管它会产生搜索内容的开销)。
答案 2 :(得分:1)
您可以尝试这样做,
NSNull *nullValue = [NSNull null];
[mutArrSkills removeObjectIdenticalTo:nullValue];
我希望这会有所帮助。
答案 3 :(得分:0)
在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]
答案 4 :(得分:-1)
你可以像这样迭代。
for(int i=0,i<[mutArrSkills count]; i++)
{
if([[mutArrSkills objectAtIndex:i] isKindOfClass:[NSNull Class]])
{
[mutArrSkills removeObjectAtIndex:i];
}
}