Bu gerçekten aptalca bir soru olabilir, ancak birisi bana UIGraphicsBeginImageContext kullanarak bir CGContextRef oluşturma ve resim çizmek için CGBitmapContextCreate kullanma arasındaki farkı söyleyebilir mi? Özellikle UIKit çiziminin iplik güvenli olduğundan beri UIGraphicsBeginImageContext üzerinden CGBitmapContextCreate kullanmak için herhangi bir neden olup olmadığını merak ediyordum.UIGraphicsBeginImageContext vs CGBitmapContextCreate on iOS
cevap
Apple'ın UIKit Function Reference'a göre, 15 Kasım 2010 tarihli kapak tarihini taşıyan UIGraphicsBeginImageContext
ve ilgili işlevler yalnızca ana iş parçacığına çağrılmalıdır. Aynı metin, en son Xcode, 3.2.5 ile gelen geliştirici belgelerinde tekrarlanır. Ancak, şimdi iş parçacığı için güvenli olduğunu açıkça anladığım UIGraphicsGetCurrentContext
için bunu bildiriyor. Benim anlayışım, sadece UIGraphicsGetCurrentContext
ve UIImage, UIColor ve UIFont sınıflarının artık UIKit'in bütününden ziyade iş parçacığı olduğuydu, ancak kesin bir referans bulamadım.
UIGraphicsBeginImageContext
, CGBitmapContextCreate
'un üstüne oturan ve işlevselliğini azaltan bir UIKit sarıcısıdır. Özellikle sabit bir bileşen siparişiyle (iOS sürümüne göre değişiklik gösterse de) RGBA renk uzay görüntüleriyle sınırlıdır ve çizim için kendi hedef tamponunuzu belirleyemezsiniz. Yani, örneğin, bir dizi CoreGraphics bileşimi yapmak ve daha sonra sonuçları OpenGL'ye yayınlamak ve CoreGraphics'e bazı dizi formunda sahip olduğunuz piping grafikleri için yardımcı olmak işe yaramaz. Ancak, UIKit yönteminin ihtiyacınız olan ve kullanması güvenliğini sağladığı yerlerde, CoreGraphics yöntemlerinde doğal bir avantaj yoktur.
http://developer.apple.com/library/ios/#releasenotes/General/WhatsNewIniPhoneOS/Articles/iPhoneOS4.html#// apple_ref/doc/uid/TP40009559-SW29 sürüm notlarında bir grafik içeriğine çizim yapmanın güvenli olduğunu ve belgelerinin tutarsız olduğunu mu düşünüyorsunuz? UIGraphicsBeginImageContext'i bir gönderim kuyruğundan aramayı denedim ve iyi çalıştı. Ayrıntılı açıklama için +1, sadece bir sarıcı olabileceğini düşündüm ama emin değildim, tekrar teşekkürler. – marchinram
Deneyimlerinizden bir soru daha diğerinden daha hızlı mı? CG seviyesine inmek daha hızlı olacağını düşünürdüm, ama kesin olarak bilmiyorum. – marchinram
İki şey tutarsız - Yeni sürümleri vurgulamak için özel olarak yazıldığından, diğer belgelerin muhtemelen güncellenmediğinden, sürüm notlarının daha doğru olduğuna inanıyorum. Doğrudan CoreGraphics çağrılarının Objective-C çağrılarına göre çok az teorik bir performans avantajına sahip olmasını beklerdim, ama önemli olabilecek hiçbir şey yok. Bir C çağrısı olan UIGraphicsBeginImageContext için, farkın ölçülebilir olmasını beklemeyeceğim - UIKit fonksiyonu sadece CoreGraphics'i ve maliyetlerin içeriğin yaratılması olayı olarak adlandıracaktır. – Tommy
- 1. Swift 2 ve 3: CGBitmapContextCreate
- 2. WebViewJavascriptBridge on iOS
- 3. facebook login on ios
- 4. FastCGI port vs on soket
- 5. Ruby vs Ruby On Rails
- 6. Node.js vs Ruby on Rails
- 7. viewWillAppear viewDidLoad vs ios
- 8. iOS Simulator vs iOS Aygıtı Algıla
- 9. Ruby on Rails desenleri - decorator vs presenter
- 10. React, Ruby on Rails: jsx vs html.erb
- 11. VS Cordova IOS Uzak Yapı
- 12. UIBarButtonItem setTitlePositionAdjustment on iOS 7 Gezinme Çubuğu
- 13. iOS vs Xcode kod analizi için SonarQube
- 14. iOS
- 15. Sınıf Kütüphanesi vs (Taşınabilir) vs (Evrensel Windows) vs (Taşınabilir iOS, Android, Windows)
- 16. SQL İç Bağlantı. ON koşulu vs WHERE yan tümcesi
- 17. on() vs live() fonksiyonunu henüz içermeyen bir öğede tıklatın
- 18. Rails vs Ruby on Rails üzerinde JRuby, fark nedir?
- 19. YouTube IFrame API'sı ve webkitExitFullScreen on IOS [revisit]
- 20. MKAnnotationView on IOS için sürükle ve bırak nasıl yönetilir?
- 21. iScroll on ios iScroll5'e yükseltildikten sonra çalışmaz
- 22. iOS: ekranda CAEmitterLayer parçacıklarını yakalama
- 23. iOS Tablolar - aynı kod farklı renkler iPad vs iPhone
- 24. Çekirdek Verileri. Senkronizasyon sorunları. (MacOS vs iOS - çakışmalar)
- 25. iOS 7 Otomatik Düzen vs iOS 8 Adaptif Düzen, bir fark var mı?
- 26. Button on Ruby on Rails bozuk rota
- 27. tapAtPoint on UIWebView alt sınıfı
- 28. "on" preventDefault
- 29. Statistics_norecompute = ON
- 30. On jQuery
"Gerçekten aptal bir soru genellikle seni alamazsın +6 upvotes;) – Mazyod