Преди да започна, вече прочетох документацията на Swift. Все още се опитвам да разбера какво всъщност представлява AnyObject. Това основен клас ли е за всички обекти/класове в Swift, тъй като NSObject е в Objective C?
Ако създам масив от тип [AnyObject] и го попълня с екземпляри от клас Movie, това би означавало, че AnyObject е базов клас на Клас филм нали?
let someObjects: [AnyObject] = [
Movie(name: "2001: A Space Odyssey", director: "Stanley Kubrick"),
Movie(name: "Moon", director: "Duncan Jones"),
Movie(name: "Alien", director: "Ridley Scott")
]
Това трябва да е вярно или в противен случай няма да можете да преобразувате с оператора за преобразуване на типа (as!), нали?
for object in someObjects {
let movie = object as! Movie
println("Movie: '\(movie.name)', dir. \(movie.director)")
}
Документацията на Swift гласи:
AnyObject може да представлява екземпляр от всеки тип клас.
И така...представете го в смисъл, че AnyObject е екземпляр на базов клас?
Нов съм в Swift, така че имайте търпение :)
[AnyObject]
. Не можете да разширите протоколаAnyObject
, така че в това отношение той не действа като базов клас. - person vacawama   schedule 02.08.2015