Paul Hegarty kursunda bir iOS 5 eğitimini takiben, bu kodu GCD kullanımını gösteren bir uygulamada görüyoruz. Görünüşe göre, GCD, hangi nesnelerin hala ihtiyaç duyulduğu konusunda önceden tahmin edilemeyen çok iş parçacıklılıktan kaynaklanan sorunlar nedeniyle serbest bırakılmasını gerektiriyor.iOS 6.0'da ARC kapsamında GCD kuyruklarını serbest bırakmanız mı gerekiyor?
dispatch_async(dowloadQueue, ^{
....
// do some stuff
....
});
dispatch_release(dowloadQueue);
Ben iOS 6 ve XCode 4.5 yükseltilmiş ve ben bir olsun "ARC açık bırakılmasını yasaklamaktadır ..." Ben iOS 5/XCode altında bu kodu deneyin vermedi
mesajı 4.2
Bunun nedeni, ARC'nin daha akıllıca olması ve artık GCD'de serbest bırakılmaya ihtiyacım olmaması mı? Yoksa sadece yanlış anlaşıldım mı?
Kuyruğu oluştururken Object-C'ye __bridge_transfer gerekir mi? – openfrog
@openfrog - Hayır, bir Objective-C nesnesi olarak ele alınırsa, zaten ARC tarafından ele alınır, bu yüzden aktarmaya gerek yoktur. –
@BradLarson Bunu kapatmak için bir yol var mı? Ya da, hem iOS 5 hem de iOS 6 altında derlenmesini sağlamak için nasıl yazarım? – fishinear