2014-09-10 26 views
13

'u değiştirmek için ALAssetLibrary kullanarak tüm fotoğrafları nasıl edineceğim Bir albüm seçici ve görüntü seçici oluşturmak için ALAssetLibrary kullanan özel bir Görüntü Seçici içeren bir uygulamaya sahibim. Müşterilerimizin birden fazla resim seçmesi için özel bir seçici uyguladık. Bu resim seçici, iOS 7'nin altında harika çalışır ve TÜM kullanıcı fotoğraflarına sahip "Kamera Rulosu" albümünü gösterir. Ancak, iOS 8 ile aynı uygulamayı çalıştırırken, Apple'ın "Kamera Rulosu" albümünü Albümler görünümünden kaldırdığı ve yalnızca "Son Fotoğraflar" ı gösterdiği anlaşılıyor. Görebildiğim kadarıyla, iOS 8'deki tüm fotoğraflara erişmenin tek yolu Koleksiyon görünümüdür (Fotoğraflar uygulamasında veya yeni yerleşik seçicide). Maalesef, şu anda Fotoğraf Seti'ni kullanamıyorum çünkü hala iOS 6 & 7 kullanıcılarını desteklemem gerekiyor. IOS 7 altında (Xcode 5'te derlenmiş) bir iOS 7 uygulaması çalıştırılırken ALAssetLibrary kullanılarak tüm varlıkları elde etmenin ve özel bir kamera rulosu albümü oluşturmanın bir yolu var mı? Yukarıda benim orijinal sonrası belirtildiği gibiios 8, eksik fotoğraf makinesi rulosu

GÜNCELLEME

Eh, ben başlangıçta yeni Fotoğraflar Framework (PhotoKit) kullanmak mümkün değildi. Ancak, kısa bir süre önce yapılarımızı Xcode 6'ya taşıdık ve artık tüm fotoğrafları bir grup oluşturmak için fotoğraf çerçevesini kullanabilirim (bunun nasıl yapılacağı konusunda WWDC ExampleappusingPhotosframework örnek koduna bakın). Bununla birlikte, herkesin PhotoKit olduğu kadar güçlü olduğu gibi, bazı önemli filtreleme yeteneklerini kaçırıyordur. Aslında, PHFetchResult ile bir yüklemeyi kullanarak orijinal "PhotoStream" deki fotoğrafları filtrelemenin kolay bir yolu yoktur. Sadece kamu düzenini kullanabilirsiniz. Neyse ki, PHAsset açıklamasını kullanarak bunları filtrelemeyi anladım. Fotoğrafın kullanıcının fotoğraf akışında olması durumunda, açıklamada listelenen assetSource anahtarı 2'ye eşittir. Bu yüzden, sonuçlarda hızlı numaralandırma kullandım ve tüm varlıkları asset.description özelliğinde basit bir stringInRange filtresi kullanarak PhotoStream'de olmayan bir diziye taşıdım ("assetSource = 2"). En iyi çözüm olmayabilir, ancak şu an için çalışıyor, böylece bir kullanıcı kendi fotoğraflarının kopyalarını hem yerel kütüphaneden hem de fotoğraf akışından göremiyor. En azından, tüm müşterinin fotoğraflarını sunabilir ve çoklu ortam seçicimin ALAssetLibrary kullanan orijinal sınıf kadar yakın çalışmasına izin verebilirim.

Tümünde, bir kişi bir yüklemi kullanarak daha iyi bir çözümü varsa, lütfen lmk.

+0

Nevermind, sorunuzu yanlış anladım. Noice için özür dilerim. – lekksi

+0

Burada bir süre önce yazdım ... AssetSource'un sorunları var, o yüzden dikkatli ol. 8.0.2'de yamanmış gibi görünüyor. http://stackoverflow.com/questions/25730830/how-to-get-only-images-in-the-camera-roll-using-photos-framework –

cevap

0

Pekala, bu sadece bir hata gibi görünüyor ve iOS 8.0.2 bunu düzeltdi (en azından benim için, görüntü seçicideki tüm fotoğrafları görebileceğim gibi).

Bu sürüm de dahil olmak üzere iyileştirmeleri ve hata düzeltmeleri içerir:

[...] Düzeltmeler Fotoğraf Kitaplığı'ndan fotoğrafları erişmesini bazı uygulamalar önleyen bir sorun. [...]

+1

Yup'da düzeltildi. Dün gece aynı şeyi doğruladı. En azından PhotoKit'i nasıl kullanacağımı öğrendim. – stulevine

+0

+1 onaylandı. Fotoğraflar hata düzeltmesi 8.0.1'de geldi. – lekksi

+2

@stulevine: Bunu kabul edildi olarak işaretlemeyi düşünür müsünüz, insanlar Photos.framework'ın mutlaka çözüm olmadığını biliyor mu? Teşekkürler. – Anas

4

Aynı sorunu yaşıyorum. Öğeler Kitaplığı'nın artık bu fotoğraflara erişemediğini söyleyen uygun belgeler bulunamadı, ancak Release Notes for iOS 8 bunun için PhotosFramework uygulamasını kullanabileceğinizi söylüyor. Yine de test edilmedim.

Fotoğraflar çerçevesi (Photos.framework), fotoğraf ve video varlıkları ile çalışma Fotoğraflar uygulaması tarafından yönetilen olan iCloud Fotoğraflar varlıkları da dahil olmak üzere yeni API'ler sağlar. Bu çerçeve, Varlıklar Kitaplığı çerçevesine göre daha yetenekli bir alternatifidir.

Belki de bu yüzden iOS 8+ üzerinde kullanmak demektir?

GÜNCELLEME: Tüm fotoğraflara erişememek iOS 8.0'da bir hatadır ve 8.0.2'de giderilmiştir. Diğer yanıtımı aşağıya bakın.

+6

Hayatlarımızı zorlaştırdığınız için teşekkürler Apple –

+0

@RossBarbish: Benim diğer görüşüme bak Cevap, sadece bir hata ve 8.0.2 – Anas