Ne için AppDelegate nedir ve nasıl kullanılacağını ne zaman biliyor musunuz?

oy
123

Sadece iPhone uygulamaları üzerinde çalışmaya başlıyorum. Özel bir sınıfın karşısında AppDelegate bir şeyler koyarak gerekirken nasıl anlarım? Bir kural veya desende gibi bir AppDelegate kullanır Python veya PHP gibi başka bir programlama dili ile benzer her türlü var mı?

Oluştur 17/03/2009 saat 00:00
kaynak kullanıcı
Diğer dillerde...                            


4 cevaplar

oy
220

Normalde dönem "Başvurunuzun kalp" Andrew kullanımıyla ima tasarım yaklaşımı kaçının. İyi bir program tasarımı normal olarak "ilgi alanındadır" ile işlevselliği ayrılmasını içerir - Ya Ben bu demek sana merkezi bir konumda çok şey lumping önlemek gerektiğini düşünüyorum olmasıdır.

Bir temsilci nesnesi bağlı olduğu bir amacı belirli bir olay veya durumları ulaştığında haberdar olur bir amacıdır. Bu durumda, uygulama temsilci UIApplication nesnesi belirli il ulaştığında bildirimleri alır bir amacıdır. Pek çok bakımdan, bir uzman bire-bir Gözlemci kalıptır.

Bu AppDelegate için "endişe alan" özel UIApplication durumlarını ele demektir. Bunların en önemlileri şunlardır:

  • applicationDidFinishLaunching: - İyi üzerinde başlatma yapılandırma ve inşaat işlemek için
  • applicationWillTerminate: - sonunda temizlemek için iyi

onlar gerçekten oraya ait kullanmadıklarından AppDelegate diğer işlevsellik koyarak kaçınmalısınız. Bu gibi diğer işlevler içerir:

  • Belge veri gönderimi - (tek belge uygulamalar için) (çoklu belge uygulamalar için) bir belge yöneticisi tek ya bir belge singleton olmalıdır
  • Düğme / tablo / görünüm kontrol, görünüm temsilci yöntemler veya diğer görüş :) applicationDidFinishLaunching üst düzey bakış inşaat haricinde (taşıma - bu iş ilgili görünüşüdür kontrol sınıflarında olmalıdır.

onlar tembel ya da AppDelegate bütün programı denetleyen düşünüyorum çünkü Birçok kişi kendi AppDelegate içine bunları götürü. o app sorunlu alanları muddies ve ölçek olmadığından Sen AppDelegate içinde merkezleme kaçınmalıdır.

Cevap 17/03/2009 saat 08:40
kaynak kullanıcı

oy
22

Başvurunuz temsilci başvurunuzun kalbidir. Bu etkili "Program Kontrolörü" var.

Uygulama temsilci en yaygın olarak diğer görünümler oluşturulmasını başlatmak için kullanılan applicationDidFinishLaunching mesajı içeren uygulama seviyesi mesajları alır sınıftır.

Tam olarak benzer olmasa da size Kakao programının "ana ()" rutin olarak düşünmek olabilir.

Cevap 17/03/2009 saat 00:14
kaynak kullanıcı

oy
1

Bu biraz daha yardımcı olacaktır dileğiyle ...

Program ana yönteminden başlıyor - bu dile yeni Programcılar hep aynı soru var? Evet, bu durumda haklısınız; IOS uygulamaları da bir ana yönteminden başlar.
Sizin ana sınıfı aşağıdaki işlevini çağırır:

 UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 

UIApplicationMain bir oluşturur Kakao Dokunmatik çalıştırmak döngü ve uygulama altyapısını başladı UIApplicationnesne. Uygulamamız içeriği o kadar objektif-c bu işlemek için bir temsilci kullanır ihtiyacı var. Biz AppDelegate (delegesi olarak hareket diyoruz yüzden UIApplication). Biz o temsilci isteğe bağlı yöntemlerden bazıları uygulanması ve buna göre davranır.

Cevap 10/02/2016 saat 10:44
kaynak kullanıcı

oy
-1

@Shivam, teşekkürler.

Ben anladığım appDelegate, bir şeye yakın olan ApplicationAndroid'de içindedir. viewDidLoad, viewDidDisappearNe Android'in Yaşam Döngüsü karşılaştırılabilir. Her uygulama gösterilmesini bildirimleri, gelen aramalardan kesintilere başlatmaktan, bir ömrü vardır. Bu zaman özel bir şey yapmak için kodunuzu gerekiyorsa systemolaylar daha sonra meydana Eğer kod yöntemleri yazmak gerekir.

Kullandığımız Android yılında onPause, onDestroy, onCreatebiraz geri arama yöntemleri, sistem olaylarını işlemek için.

Cevap 27/01/2017 saat 18:01
kaynak kullanıcı

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more