Представьте переменную, объявленную как показано ниже:
let sample: 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? 2. Когда тип переменной Любой, но не NSObject?
Согласно моему пониманию,
NSObject является подмножеством AnyObject. NSObject является базовым классом для большинства объектов Obj C. AnyObject является подмножеством Any. AnyObject является экземпляром любого типа класса. Любой является представлением экземпляра любого типа вообще, включая типы функций и необязательные типы.
Пожалуйста, поправьте меня, если я ошибаюсь с вышеуказанным пониманием. Извините, я новичок в Obj c и мне нужна помощь в понимании концепций. Любой URL веб-сайта, который объясняет эти понятия, будет полезен. Заранее спасибо! :)