Ошибка доступа к свойству из библиотеки
У меня есть класс, который импортирует другой, и я пытаюсь получить доступ к свойству этого класса, но я получаю сообщение об ошибке, сообщающее, что значение не имеет члена. Что я могу сделать?
Ошибки происходят в self.cachedImageView
Класс библиотеки:
#import "JSQPhotoMediaItem.h"
@interface JSQPhotoMediaItem ()
@property (strong, nonatomic) UIImageView *cachedImageView;
@end
@implementation JSQPhotoMediaItem
и методы реализации продолжаются.
Мой класс пытается получить доступ к cachedImageView
override func mediaView() -> UIView? {
if !self.hasFile {
return nil
}
if self.cachedImageView == nil {
let size = self.mediaViewDisplaySize()
let imageView = UIImageView(frame: CGRect(x: 0, y: 0, width: size.width, height: size.height))
let lightGrayColor = UIColor.jsq_messageBubbleLightGray()
imageView.backgroundColor = UIColor.jsq_messageBubbleLightGray()
imageView.image = UIImage(named: "file_placeholder")?.jsq_imageMasked(with: lightGrayColor.jsq_colorByDarkeningColor(withValue: 0.4))
imageView.contentMode = UIViewContentMode.center
let RightMargin = CGFloat(10)
let BottomMargin = CGFloat(20)
self.label.frame = CGRect(x: 0, y: 0, width: imageView.frame.width / 2, height: 20)
let point = CGPoint(x: 1.5 * imageView.center.x - RightMargin, y: imageView.frame.height - BottomMargin)
self.label.center = imageView.convert(point, from: imageView.superview)
self.label.textColor = UIColor.lightGray
self.label.textAlignment = NSTextAlignment.right
self.label.font = UIFont(name: "Helvetica", size: 14.0)
imageView.addSubview(label)
JSQMessagesMediaViewBubbleImageMasker.applyBubbleImageMask(toMediaView: imageView, isOutgoing: self.appliesMediaViewMaskAsOutgoing)
self.cachedImageView = imageView
}
return self.cachedImageView
}
1 ответ
Причина в том, что вы создаете свое свойство в файле.m, а не в файле.h. Файл.m в объекте c является частным. Если вы хотите сделать что-то общедоступным и доступным вне класса, объявите это в файле.h. Это будет работать наверняка. Если это работает, не забудьте принять ответ, пожалуйста.