Sobes.tech
Junior

Objective-C yoki Swiftda sinflar merosxo'rlik zanjiri haqida gapiring.

sobes.tech AI

AIdan javob

Objective-C'da, hər sinf NSObject (və ya onun alt sinfi) tərəfindən miras alınır, bu da Foundation çərçivəsində çoxsaylı obyekt yönümlü və string olmayan sinflərin kök sinfidir. NSObject əsas funksionallıq təmin edir, məsələn, yaddaş idarəsi, obyektlərin təsviri, bərabərlik yoxlaması və introspeksiya.

// Objective-C-də, sinifin elan edilməsi avtomatik olaraq `NSObject`-dən miras alınmağı nəzərdə tutur, başqa cür göstərilmədikdə.
@interface MyClass : NSObject // Açıqlanan miras `NSObject`.
// ...
@end

// Əgər açıq miras yoxdursa, standart olaraq `NSObject`-dən miras alınır.
@interface AnotherClass
// ...
@end

Swift-də, siniflərin NSObject kimi tək kök sinfi yoxdur. Sinif başqa sinifdən miras ala bilər və bu, hierarxiya yaradır. Əgər sinif açıq şəkildə başqa sinifdən miras almırsa, o, öz hierarhiyasında kök sinif olur. Objective-C və Cocoa çərçivələri ilə uyğunluq, Swift və Objective-C arasında bridged (körpü) siniflər vasitəsilə təmin edilir, məsələn, Foundation-dan olan siniflər.

// Açıqlanmayan miras olan sinif - öz hierarxiyasında kök.
class MySwiftClass {
    // ...
}

// Digər Swift sinifindən miras alan sinif.
class AnotherSwiftClass: MySwiftClass {
    // ...
}

// Objective-C sinifindən miras alan Swift sinfi (məsələn, Foundation-dan).
import Foundation

class MyViewController: UIViewController { // UIViewController, UIResponder-dən miras alır, o da NSObject-dən.
    // ...
}

Miras zənciri, uşağın valideynə doğru gedən siniflər ardıcıllığıdır, kök sinifə (Objective-C-də NSObject və ya Swift hierarxiyasında kök sinif) qədər. Bu, uşaqlara valideyn siniflərin xüsusiyyətlərini və metodlarını istifadə etməyə və onları yenidən təyin etməyə imkan verir.