2015-11-16 64 views
2

我今天早上一直在關於PHAsset好奇。上個月我曾經處理過ALAsset。我從Apple網站下載了一個iOS項目,該項目使用ALAsset來製作一個簡單的iOS照片式應用程序,並且我修改了它以添加更多功能以獲得更多iOS類照片應用程序。然後我的老闆處理了我的項目,並告訴整個辦公室我應該接受培訓,他必須重新編寫整個項目,因爲我的代碼大部分是過時的(可能是因爲使用ALAsset?)。我的老闆在iOS中非常優秀,我看到他的代碼,他正在使用PHAssetALAsset和PHAsset有什麼區別?

那麼ALAssetPHAsset之間的區別是什麼?我還在Apple/iOS論壇中看到一個線索,PHAsset是新的,ALAsset是舊的。

此外,我想知道兩者之間哪個更好,以及在將元數據寫入圖像時這兩者更容易使用。

我是iOS新手(2個月),我可以看到PHAssetALAsset都是從NSObject

https://developer.apple.com/library/prerelease/ios/documentation/Photos/Reference/PHAsset_Class/index.html

https://developer.apple.com/library/prerelease/ios/documentation/AssetsLibrary/Reference/ALAsset_Class/index.html

+0

我喜歡這個問題帶有一個小故事。 –

+0

謝謝。 :)當我發佈這個問題時,我是一個新手:)我從來沒有受過訓練。 – Glenn

回答

3

你可以從兩個階級,他們是來自兩個不同的框架的參考文檔看到的。

PHAsset來自較新的Photos框架(在iOS 8.0中添加)。

ALAsset來自最初的AssetsLibrary框架。

如果您的應用的部署目標是iOS 8.0或更高版本,則應使用較新的框架。如果您的應用需要支持iOS 7或更早版本,請僅使用較舊的AssetsLibrary框架。

在這種情況下哪個更容易的問題是無關緊要的。如果可能,請使用較新的一個。 Apple始終鼓勵使用最新的框架,庫,操作系統,硬件等。

您還會注意到整個AssetsLibrary框架已被棄用。這意味着它已經過時。它仍然有效,但它的使用不鼓勵有利於新圖書館。

+0

是的!非常感謝你的澄清。 :)現在我知道爲什麼我的老闆說我的代碼已經過時了。 – Glenn