2012-12-10 20 views
5

Bazıları, ana iş parçacığında UIApplication kullanması gerektiğini söylüyor ancak Apple'ın belgesinde bu belgeyi göremiyorum. Birisi, UIApplication'ı ayrı bir iş parçacığında kullanmanın güvenli olup olmadığını lütfen söyleyebilir mi? Güvenli değilse, bu nerede belgelenir?iOS: UIApplication yöntemlerini ana iş parçacığı güvenliğin dışındaki bir iş parçacığında çağırıyor mu?

DÜZENLEME: Yerel bildirimleri manipüle eden yöntemlere odaklanıyorum.

+0

Kullanmak istediğiniz yöntemlerle ilgili daha spesifik olmanıza yardımcı olur. – rmaddy

+0

@rmaddy Teşekkür ederim, incelediğim yöntemleri ekledim. – CarmeloS

cevap

5

Çoğu UIKit sınıfı iş parçacığı güvenli değildir. Bu, WWDC'de vs. tartışılmıştır, ancak çok iyi belgelenmemiştir. Bulabildiğim en iyi şey, TN2109. Bu, ikincil bir iş parçacığından UIKit’in aranmasına nasıl izin verilmediğini tekrar tekrar tartışıyor.

Bu kuralda çok sayıda belgelenmiş istisna olduğunu unutmayın. Örneğin, beginBackgroundTaskWithExpirationHandler ve UIApplication ile ilgili yöntemler açıkça ana olmayan iş parçacıklarını aramak için güvenli olarak etiketlenir. (Bu ayrıca UIApplication diğer yöntemlerdir ima değil bu spesifik seslendi olduğundan, diğer iş parçacıkları aramak için. Güvenli)

çoğunlukla (UIImage çizim içeren diğer bu kuralın istisnaları, hem de vardır ve UIColor örnekleri, en az iOS 4'dan itibaren diş güvenlidir.

0

UIApplication, UIResponder'ın bir alt sınıfıdır ve UIKit çerçevesinin bir parçasıdır. Bu yüzden, diş ipi güvenli değil sanırım çünkü UIKit sınıflarının iş parçacığı güvenli olmadığı belgelendi.

Ayrıca benzeri yöntemleri vardır - setStatusBarOrientation: tüm UI tabanlı ve bu kesinlikle ana iş parçacığı dışında başka bir iş parçacığı denilen olamaz hangi :, animasyon.

+0

UI'yi işlediğinizde, ana iş parçacığı üzerinde olması gerekir, ancak UIApplication yöntemlerinin tümü UI'yi işlemez. Diğer iş parçacığı kullanan durumlarda iyidir. – sosborn

+0

Sorumu düzenledim, yerel bildirimleri işleyen yöntemlere odaklanıyorum. – CarmeloS

İlgili konular