想象一个声明如下的变量:
让示例:AnyObject =“ anyobject”作为AnyObject
现在,当我尝试检索var样本的类型时,它显示为NSObject。
下面是代码段:
let sample : AnyObject = "anyobject" as AnyObject
if sample is NSObject {
print("Type is NSObject")
}
if sample is AnyObject {
print("Type is AnyObject")
}
if sample is Any {
print("Type is Any")
}
输出为:
Type is NSObject
Type is AnyObject
Type is Any
我认为输出将是AnyObject和Any,因为AnyObject是Any的子集。但是它也显示了NSObject。
我的问题是:1.什么时候变量是AnyObject但
NSObject是AnyObject的子集。 NSObject是大多数ObjC对象的基类。AnyObject是Any的子集。 AnyObject是任何类类型的实例。Any表示任何类型的实例,包括函数类型和可选类型。
如果我对以上理解有误,请纠正我。抱歉,我是Objc的新手,需要帮助您理解这些概念。任何解释这些概念的网站网址都将很有用。提前致谢! :)
想象一个声明如下的变量:let sample:AnyObject =“ anyobject”作为AnyObject现在,当我尝试检索var示例的类型时,它显示为NSObject。以下是代码段:...
SwiftObject
class的子类,该子类提供SwiftObject
协议一致性。