2014-09-10 35 views
13

我有一個應用程序,它具有使用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的原始類相近。

無論如何,如果有人使用謂詞有更好的解決方案,請注意。

+0

沒關係,我誤解了你的問題。不好意思。 – lekksi 2014-09-19 10:08:04

+0

我在這裏寫了一段時間後...雖然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

回答

0

好吧,好像它只是一個bug,iOS 8.0.2修復了它(至少對我來說,因爲我現在可以看到圖像選擇器中的所有照片)。

本新聞稿中包含改進和bug修復,其中包括:

[...] 修復,阻止訪問來自圖片庫的照片一些應用程序的問題。 [...]

+1

Yup中修復。昨晚確認了同樣的事情。至少我學會了如何使用PhotoKit。 – stulevine 2014-09-26 10:15:22

+0

+1確認。照片錯誤修復已經發布在8.0.1中。 – lekksi 2014-09-26 14:32:16

+2

@stulevine:你介意將此標記爲已接受,所以人們知道Photos.framework不一定是解決方案嗎?謝謝。 – Anas 2014-10-01 16:15:01

4

我遇到同樣的問題。找不到適當的文檔說資產庫不再訪問這些照片,但Release Notes for iOS 8說你可以使用PhotosFramework。尚未經過測試。

的照片框架(Photos.framework)提供了新的API工作 用照片和視頻資產,包括iCloud的照片資產,是由 照片應用管理。這個框架是一個更有能力的替代資產庫框架的 。

也許這意味着我們已經使用它在iOS 8+?

更新:無法訪問所有照片是iOS 8.0上的一個錯誤,它在8.0.2上修復。見下面我的其他答案。

+6

感謝複雜化我們的生活Apple – 2014-09-24 20:05:28

+0

@RossBarbish:看看我的其他回答,結果這只是一個錯誤,並在8.0.2 – Anas 2014-10-01 17:20:06

相關問題