从库中访问属性时出错

Posted

技术标签:

【中文标题】从库中访问属性时出错【英文标题】:Error to access property from a library 【发布时间】:2017-03-30 19:38:41 【问题描述】:

我有一个导入另一个类的类,我正在尝试访问该类的属性,但我收到一个错误消息,告诉我该值没有成员。我能做什么?

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

【问题讨论】:

您是否将cachedImageView 声明为您班级的属性?你的类是JSQPhotoMediaItem的子类吗? 我将课程导入我的课程 您是简单地导入框架还是子类化对象?你在说self.,所以你正试图访问你班级的财产。简单地导入其他类的定义并不会神奇地将属性添加到不相关的类中 【参考方案1】:

原因是因为您在 .m 文件而不是 .h 文件中创建了您的财产。目标 c 中的 .m 文件是私有的。如果您想在类之外公开和访问某些内容,请在 .h 文件中声明它。它肯定会起作用。如果可行,请不要忘记接受答案。

【讨论】:

以上是关于从库中访问属性时出错的主要内容,如果未能解决你的问题,请参考以下文章

使用 Linkage 从库中加载音频文件时出错

通过 ResourceBundle 访问属性文件时出错

尝试访问 PFUser 子类的动态属性时出错

MATLAB:当我尝试访问对象的属性时出错

在 EF Code First 中访问导航属性时出错

Nuxt.js Typescript - 尝试访问计算属性中的数据对象时出错