RAPhotoItemModel.m 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. //
  2. // RAPhotoItemModel.m
  3. // Apex And Drivers
  4. //
  5. // Created by Jack on 2018/10/30.
  6. // Copyright © 2018年 USAI. All rights reserved.
  7. //
  8. #import "RAPhotoItemModel.h"
  9. #import "UIImage+RedAnt.h"
  10. @implementation RAPhotoItemModel
  11. @synthesize photo = _photo;
  12. #pragma mark - Setter
  13. - (void)setUrl:(NSString *)url {
  14. _url = url;
  15. dispatch_async(dispatch_get_global_queue(0, 0), ^{
  16. UIImage *img = [UIImage ra_imageWithURL:[NSURL URLWithString:url]];
  17. dispatch_async(dispatch_get_main_queue(), ^{
  18. self.photo = img;
  19. });
  20. });
  21. }
  22. - (void)setPhoto:(UIImage *)photo {
  23. _photo = photo;
  24. if (_delegate && [_delegate respondsToSelector:@selector(refreshUI)]) {
  25. id<RAPhotoModelDelegate> dlgt = _delegate;
  26. dispatch_async(dispatch_get_main_queue(), ^{
  27. [dlgt refreshUI];
  28. });
  29. }
  30. }
  31. - (void)setDelegate:(id<RAPhotoModelDelegate>)delegate {
  32. if (_delegate && [_delegate respondsToSelector:@selector(unbind)]) {
  33. [_delegate unbind];
  34. }
  35. _delegate = delegate;
  36. }
  37. #pragma mark - Getter
  38. - (UIImage *)photo {
  39. if (!_photo) {
  40. if (self.placeHolder) {
  41. return [UIImage imageNamed:self.placeHolder];
  42. } else {
  43. return nil;
  44. }
  45. }
  46. return _photo;
  47. }
  48. - (BOOL)isEmpty {
  49. return _photo == nil;
  50. }
  51. @end