В случае, если есть другие люди, которые ищут решение, я надеюсь, что это поможет.
Я использую MWPhotoBrowser уже довольно давно.Ранее в их .h файле мы могли взять photoUrl.Теперь они переезжают в .m, и мы не можем получить доступ к этой собственности снаружи.
Поскольку я использую эту библиотеку из cocoapods, я также не хочу изменять их код.Итак, я создаю категорию, как это.Я назначу photoUrl отдельно в MWPhoto.
В MWPhoto + Property.h,
#import <MWPhotoBrowser/MWPhotoBrowser.h>
@interface MWPhoto (Property)
@property (nonatomic, strong) NSURL *photoUrl;
@end
В MWPhoto + Property.m,
#import "MWPhoto+Property.h"
#import <objc/runtime.h>
@implementation MWPhoto (Property)
static char UIB_PROPERTY_PHOTOURL;
@dynamic photoUrl;
- (void)setPhotoUrl:(NSURL *)photoUrl {
objc_setAssociatedObject(self, &UIB_PROPERTY_PHOTOURL, photoUrl, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
}
- (NSURL *)photoUrl {
return (NSURL *)objc_getAssociatedObject(self, &UIB_PROPERTY_PHOTOURL);
}
@end
Затем, когда я инициализирую MWPhoto, я ставлю и для photoUrl.
NSURL *photoUrl = [NSURL URLWithString:messageData.dataDict[@"image"]];
MWPhoto* photo = [MWPhoto photoWithURL:photoUrl];
photo.photoUrl = photoUrl; //Due to new implementation in MWPhotoBrowser, property of photoUrl is hidden. So, i put in category
[self.photos addObject: photo];
//Later, you can access photo.photoUrl in other places.