我有一個應用程序,它具有使用ALAssetLibrary創建相冊選取器和圖像選擇器的自定義圖像選取器。我們實施了自定義選擇器,以便我們的客戶選擇多個圖像。這個圖像選擇器在iOS 7下工作得很好,並且顯示了所有用戶照片的「相機膠捲」相冊。但是,在iOS 8下運行相同的應用程序時,Apple似乎已從「相冊」視圖中刪除了「相機膠捲」相冊,並只顯示「最近的照片」。從我所看到的,訪問iOS 8中所有照片的唯一方法是通過Collection視圖(在Photos應用程序或新的內置選取器中)。不幸的是,我目前無法使用Photokit,因爲我仍然需要支持我的iOS 6用戶。有沒有人知道如何在iOS 8下運行iOS 7應用程序(在Xcode 5中編譯)時使用ALAssetLibrary獲取所有資產並創建自定義相機膠捲相冊?ios 8,如何使用ALAssetLibrary取代所有照片,以取代缺失的相機膠捲相冊
UPDATE
嗯,正如我在原來的職位說明上面,我最初並不是能夠使用新的照片框架(PhotoKit)。但是,最近我們將構建版本移至Xcode 6,現在我可以使用照片框架創建一組所有照片(請參閱WWDC ExampleappusingPhotosframework示例代碼瞭解如何執行此操作)。然而,正如大家所說的PhotoKit一樣強大,它缺少一些關鍵的過濾功能。實際上,使用帶有PHFetchResult的謂詞過濾掉原始「PhotoStream」中的照片並不容易。你只能使用公共特性。幸運的是,我想出瞭如何使用PHAsset描述來過濾它們。如果照片位於用戶的照片流中,說明中列出的assetSource鍵等於2。因此,我對結果使用了快速枚舉,並使用asset.description屬性(查找「assetSource = 2」)上的簡單stringInRange過濾器將所有資產移動到不在PhotoStream中的數組。這可能不是最好的解決方案,但它現在可以工作,因此用戶不會看到來自本地圖書館和他們的照片流的照片的重複。至少我可以展示所有客戶的照片,並允許我的多媒體選擇器與使用ALAssetLibrary的原始類相近。
無論如何,如果有人使用謂詞有更好的解決方案,請注意。
沒關係,我誤解了你的問題。不好意思。 – lekksi 2014-09-19 10:08:04
我在這裏寫了一段時間後...雖然AssetSource有問題,所以要小心。它似乎已被修補到8.0.2。 http://stackoverflow.com/questions/25730830/how-to-get-only-images-in-the-camera-roll-using-photos-framework – 2014-10-10 16:06:11