Rääkige Objective-C või Swifti klasside päriluse ahelast.
sobes.tech AI
Vastus AI-lt
Objective-C iga klass pärineb NSObject-st (või selle alamklassist), mis on suurema osa objektorienteeritud ja mitte-tekstiliste klasside juurklass Foundation raamistikus. NSObject pakub põhilist funktsionaalsust, nagu mälu haldus, objektide kirjeldus, võrdluse testimine ja introspektsioon.
// Objective-C klassi deklaratsioon eeldab automaatselt pärandumist `NSObject`-st, kui teist ei ole selgelt märgitud.
@interface MyClass : NSObject // Selge pärandumine NSObject-st.
// ...
@end
// Kui pärandumist ei ole selgelt märgitud, pärib vaikimisi NSObject-st.
@interface AnotherClass
// ...
@end
Swift klassidel ei ole ühtset juurklass nagu NSObject Objective-C-s. Klass võib pärida teisest klassist, moodustades hierarhia. Kui klass ei pärine otseselt teisest klassist, on ta omaenda hierarhia juurklass. Ühilduvus Objective-C ja Cocoa raamistikuga tagatakse klassidega, mis on bridge'itud Swift ja Objective-C vahel, näiteks Foundation klassidega.
// Klass ilma selge pärandumiseta - on oma hierarhia juur.
class MySwiftClass {
// ...
}
// Klass, mis pärib teisest Swift klassist.
class AnotherSwiftClass: MySwiftClass {
// ...
}
// Swift klass, mis pärib Objective-C klassist (näiteks Foundation-ist).
import Foundation
class MyViewController: UIViewController { // UIViewController pärib UIResponderist, mis pärib NSObjectist
// ...
}
Pärandumisahel on klasside järjestus lapseklassist vanemklassini, kuni juurklassini (olgu see NSObject Objective-C-s või juurklass Swift hierarhias). See võimaldab lapseklassidel kasutada ja üle kirjutada vanemate klasside omadusi ja meetodeid.