ViewController tidak boleh tahu ViewController放宽吗?

[Artikel ini akan terus diupdate sesuai dengan apa yang diketahui penulis。 Jika kalian menemukan kesalahan, 随时免费获得菜单!]

Di ViewController编程指南,请参见ViewController的使用。 或者至少是ViewController的dia tidak punya pengetahuan tentang apa sebenarnya。

h,迪尼尼·彭拉桑·伯亨蒂。 Tidak ada contoh kode dimana konsep itu harus dijalankan oleh开发人员(程序员)。 Ini tentu membuat saya(pribadi)kesulitan。 苹果(Apple),西班牙菜(Karena Masih新手)面包(Baenamana merealisasikan Hal Tersebut)。

Paragraf yang dibuat dalam bentuk Quote di atas adalah paragraf yang saya baca sebelum menulis artikel ini。 Saya memang tidak terlalu memahaminya namun setelah menulis artikel ini dan membacanya kembali,saia sekarang paham apa yang yang dimaksudkan oleh Apple dengan delegation模式。

阿达·贝贝拉帕

  1. Apa yang harus dilakukan jika saya ingin mengakses sesuatu dari ViewController是否已登录?

Bayangkan jika kita punya CaptainAmericaViewController dan IronManViewController dan saat ini adalah复仇者联盟:南北战争。 吉卡·卡利安·贝卢姆·佩尔纳·丹根(Jika kalian)摄于帕尔马(Daniana Cap)

Disini kita membuat ViewController开发者。

Karena keduanya bertempur,maka harus ada cara untuk saling mengakses satu sama lain。 Sementara itu,kita tidak diperbolehkan mengakses langsung属性dan method dalam kelas ViewController karena tidak punya pengetahuan tentangnya。 Lalu bagaimana jika“ Cap” ingin memukul Iron-Man dan membuat Jarvis下线了吗?

麦卡塔鲁(Maka kita)夜总会Protokol PertempuranCivilWar杨门(men definisikan)aktivitas-aktivitas para“ aktor” pertempuran。

 协议PertempuranCivilWar { 
func diSerang()
}

Protokol ini digunakan sebagai层(aku lupa nama seharusnya)取消了对perilaku dari tiap aktor saat pertempuran内战的要求。

let captainAmerica = CaptainAmericaViewController()

let ironMan = IronManViewController()

CaptainAmericaVC:PertempuranCivilWar

IronManVC:PertempuranCivilWar

  ----- 
实施
-----
// 美国队长
func diSerang(){
打印(“ Perisainya penyok”)
}
// 钢铁侠
func diSerang(){
打印(“ Jarvis脱机”)
}

卡琳娜船长(Karena Captain)

  var lawanDelegate:PertempuranCivilWar?// Membuat IronMan sebagai lawan CaptainAmerica 
captainAmerica.lawanDelegate = ironMan

玛卡·凯蒂卡(Maka ketika)上尉美国·印因·门尼朗(Imman Menyerang)IronMan,迪曼·曼吉吉·冯格斯(Perman)协议

  //美国队长Menyerang IronMan 
captainAmerica.lawanDelegate.diSerang()
//控制台日志
“贾维斯离线”

Begitu普拉sebaliknya。

Sebenarnya saya agak mumet menulis seperti ini。 Tujuan utama adalah sebagai catatan dan dengan menulis,kita jadi membuka konsep-konsep baru yang belum pernah terpikirkan sebelumnya。 Contoh:协议。 萨亚(Saya)Belum memikirkannya kecuali setelah mulai menulis post ini。 Jadi,tetaplah menulis。!!!