Ios 如何检查NSMutableArray元素是NSNull还是AnyObject

Ios 如何检查NSMutableArray元素是NSNull还是AnyObject,ios,swift,core-data,nsmutablearray,nsnull,Ios,Swift,Core Data,Nsmutablearray,Nsnull,我有一个PersonsArray:NSMutableArray=[NSNull,NSNull,NSNull,NSNull,NSNull,NSNull]。我需要七个插槽,然后可以用实体CoreData条目作为AnyObject填充它们 我需要在这个NSMutableArray上做一个for-in循环 如果索引槽为NSNull,我希望传递到下一个索引槽,如果索引槽中填充了我的对象,我希望在此对象上执行代码 或 注意:使用NSNull只是NSMutableArray中的占位符,所以它的计数总是7,

我有一个
PersonsArray:NSMutableArray=[NSNull,NSNull,NSNull,NSNull,NSNull,NSNull]
。我需要七个插槽,然后可以用实体CoreData条目作为AnyObject填充它们

我需要在这个NSMutableArray上做一个for-in循环

如果索引槽为NSNull,我希望传递到下一个索引槽,如果索引槽中填充了我的对象,我希望在此对象上执行代码



注意:使用NSNull只是NSMutableArray中的占位符,所以它的计数总是7,我可以用一个对象替换(7)个插槽中的任何一个。我应该使用非NSNull的内容作为占位符吗?

NSNull()
是一个单例对象,因此您可以简单地测试 数组元素是
NSNull
的实例:

if personsArray[index] is NSNull { ... }
或使用“等同于”运算符:

if personsArray[index] === NSNull() { ... }
或者,您可以使用一组选项:

let personsArray = [Person?](count: 7, repeatedValue: nil)
// or more verbosely:
let personsArray : [Person?] = [ nil, nil, nil, nil, nil, nil, nil ]

对空插槽使用
nil

即使NSNull不是单例对象,它也不会
工作吗?这难道不是因为它是一个单例对象,
==
可能会工作(比较引用?)。因为它是一个单例对象,所以可以测试数组元素
==[NSNull null]
(用Objective-C表示法)。@HotLicks Objective-C的
=[NSNull]
是一个引用比较=
更像是在Objective-C中执行isEqual:[NSNull],但
==
是Swift的参考比较。@nhgrif:我正要添加
==
版本。原来我是在填充原始PersonArray=[[NSNull.self,NSNull.self,NSNull.self,NSNull.self,NSNull.self,NSNull.self]并且它不等于PersonsArray=[NSNull(),NSNull(),NSNull(),NSNull(),NSNull(),NSNull()]
NSNull
可能定义为总是从任何
=
!=
比较中返回
false
。这就是null在大多数地方的用法。。。
if PersonsArray[index] as! NSNull != NSNull() {println(index)}
if personsArray[index] is NSNull { ... }
if personsArray[index] === NSNull() { ... }
let personsArray = [Person?](count: 7, repeatedValue: nil)
// or more verbosely:
let personsArray : [Person?] = [ nil, nil, nil, nil, nil, nil, nil ]