Video: Cara Setting Apn Di Ipad/Iphone Untuk Dapat Internetan 2025
Protokol mentakrifkan set kaedah yang boleh dilaksanakan oleh mana-mana kelas untuk apl iOS. Fikirkan protokol sebagai antaramuka antara muka yang perlu dilaksanakan oleh kelas. Protokol sering digunakan untuk menentukan antara muka untuk objek mewakilkan. Dengan ciri protokol, anda boleh mengelakkan daripada memaksa subclassing untuk membuat kelas polimorfik.
Objektif-C (tidak seperti C ++) tidak membenarkan kelas mempunyai lebih banyak cermin mata hitam. Oleh itu, protokol adalah ciri penting dalam Objektif-C kerana ia tidak membenarkan banyak pusaka. Apabila kelas melaksanakan kaedah dalam protokol, kelas dikatakan mematuhi untuk protokol.
Takrif protokol adalah serupa dengan definisi antara muka untuk kelas. Walau bagaimanapun, protokol tidak mempunyai kelas induk atau pembolehubah contoh. Berikut adalah contoh definisi protokol (Boleh dicetak) dari program kalkulator postfix:
@protocol Printable - (void) printMe; / / Saya boleh keluar @minta, kerana ia adalah pencetakan defaultMenggunakan - (NSString *) printMeToString; -d
Dengan ketibaan (dan sesungguhnya dengan kegilaan besar) Objective-C 2. 0, kaedah protokol sama ada diperlukan (lalai) atau pilihan. Jadi saya melemparkan arahan kompilator itu ke dalam campuran di sini juga.
Berikut adalah perisytiharan StackOfInteger yang menyatakan bahawa ia akan melaksanakan protokol:
@interface StackOfInteger: NSObject … -d
Berikut ialah pelaksanaan protokol dalam kelas StackOfInteger:
@implementation StackOfInteger; … StackOfInteger kaedah lain … /////////// Kaedah untuk melaksanakan protokol yang boleh dicetak //////////// - (tidak sah) printMe {int k, stackCount = [count count]; 1 ->Program boleh menguji sama ada sesuatu objek mematuhi protokol. Kod berikut mengandungi contoh ujian ini (diambil dari program utama sampel):
printf ("Pengujian kepatuhan kepada protokol") {if ([myStack conformsToProtocol: @protocol (Printable)]) {printf ("Using methods protocol"); [myStack printMe];} else {NSLog (@ "Object does not conform to protocol% @ n" (C) [someObject conformsToProtocol: @protocol (Printable)]) {NSLog (@ "Objek tidak mematuhi protokol");}Oleh kerana objek myStack mematuhi protokol, kaedah printMe dan printMeToString dipanggil.Oleh kerana someObject (yang merupakan jenis id untuk membuat contoh yang lebih bermakna) tidak mematuhi protokol Cetakan, ujian untuk pematuhan gagal.
Anda juga boleh menguji kewujudan kaedah pilihan dengan menggunakan kaedah responsSoSelektor.
Anda boleh membuat kelas menggunakan protokol hanya dengan melaksanakan kaedah yang ditentukan oleh protokol itu. Iaitu, anda tidak perlu mengisytiharkan protokol itu di antara muka. Walau bagaimanapun, walaupun kelas melaksanakan kaedah protokol, ia akan
tidak mematuhi protokol dan akan gagal ujian pematuhan sebelumnya.
