В чем разница между ALAsset и PHAsset?

Сегодня утром мне было любопытно узнать о PHAsset. Раньше я имел дело с ALAsset в прошлом месяце. Я загрузил проект iOS с веб-сайта Apple, в котором используется ALAsset для создания простого приложения, похожего на iOS Photos, и я изменил его, добавив больше функций, чтобы оно было больше похоже на приложение iOS Photos. А потом мой босс занялся моим проектом и сказал всему офису, что меня нужно обучить, и что он должен переписать весь проект, потому что мои коды в основном устарели (вероятно, из-за использования ALAsset?). Мой босс так хорош в iOS, и я видел его коды, он использует PHAsset.

Так в чем же разница между ALAsset и PHAsset? Я также видел ветку на форуме Apple/iOS, в которой PHAsset является новым, а ALAsset — старым.

Кроме того, я хотел бы знать, какой из них лучше, и какой из этих двух проще использовать, когда дело доходит до записи метаданных в изображение.

Я новичок в iOS (2 месяца) и вижу, что PHAsset и ALAsset оба из 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


person Glenn Posadas    schedule 16.11.2015    source источник
comment
Мне понравилось, что этот вопрос сопровождался небольшой историей.   -  person Mick Byrne    schedule 26.10.2017
comment
Спасибо. :) Я был новичком, когда задал этот вопрос :) Я никогда раньше не обучался.   -  person Glenn Posadas    schedule 26.10.2017


Ответы (1)


Как вы можете видеть из справочной документации для двух классов, они из двух разных фреймворков.

PHAsset взят из более новой платформы Photos (добавлен в iOS 8.0).

ALAsset взят из исходного фреймворка AssetsLibrary.

Вы должны использовать более новую платформу, если целью развертывания вашего приложения является iOS 8.0 или новее. Используйте старую платформу AssetsLibrary только в том случае, если вашему приложению требуется поддержка iOS 7 или более ранней версии.

Вопрос о том, что легче, в данном случае неактуален. Используйте более новый, если это возможно. Apple всегда поощряет использование новейших фреймворков, библиотек, ОС, оборудования и т. д.

Вы также заметите, что вся структура AssetsLibrary устарела. Это означает, что он устарел. Он все еще работает, но его использование не рекомендуется в пользу более новой библиотеки.

person rmaddy    schedule 16.11.2015
comment
Да!!! Большое спасибо за разъяснения. :) Теперь я знаю, почему мой босс сказал, что мои коды устарели. - person Glenn Posadas; 16.11.2015