XG_AssetModel.m 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. //
  2. // XG_AssetModel.m
  3. // MyApp
  4. //
  5. // Created by huxinguang on 2018/9/26.
  6. // Copyright © 2018年 huxinguang. All rights reserved.
  7. //
  8. #import "XG_AssetModel.h"
  9. @implementation XG_AssetModel
  10. + (instancetype)modelWithAsset:(PHAsset *)asset videoPickable:(BOOL)videoPickable{
  11. XG_AssetModel *model = [[XG_AssetModel alloc] init];
  12. model.asset = asset;
  13. model.picked = NO;
  14. model.number = 0;
  15. switch (asset.mediaType) {
  16. case PHAssetMediaTypeUnknown:
  17. model.selectable = NO;
  18. break;
  19. case PHAssetMediaTypeImage:
  20. model.selectable = YES;
  21. break;
  22. case PHAssetMediaTypeVideo:
  23. if (videoPickable) {
  24. model.selectable = YES;
  25. }else{
  26. model.selectable = NO;
  27. }
  28. break;
  29. case PHAssetMediaTypeAudio:
  30. model.selectable = NO;
  31. break;
  32. default:
  33. break;
  34. }
  35. return model;
  36. }
  37. /*
  38. 如果自定义的类需要实现浅拷贝,则在实现copyWithZone:方法时返回自身,
  39. 而需要深拷贝时,在copyWithZone:方法中创建一个新的实例对象返回即
  40. */
  41. - (id)copyWithZone:(NSZone *)zone {
  42. XG_AssetModel *item = [self.class new];
  43. return item;
  44. }
  45. @end