【问题标题】:Warning 'atomic' attribute on property 'previewItemURL' does not match the property inherited from 'QLPreviewItem'警告属性“previewItemURL”上的“原子”属性与从“QLPreviewItem”继承的属性不匹配
【发布时间】:2016-06-03 11:42:14
【问题描述】:

我有课

@interface ATPreviewItem : NSObject <QLPreviewItem> 

@property(atomic, strong) NSURL * previewItemURL; 
@property(atomic, strong) NSString * previewItemTitle;

@end

QLPreviewItem 协议具有属性

@property(readonly, nonnull, nonatomic) NSURL * previewItemURL;
@property(readonly, nullable, nonatomic) NSString * previewItemTitle;

我收到警告:

属性“previewItemURL”上的“原子”属性与从“QLPreviewItem”继承的属性不匹配

那么,什么是在不警告的情况下通过覆盖属性属性声明属性的正确方法?

【问题讨论】:

    标签: ios objective-c inheritance properties protocols


    【解决方案1】:

    您无需在ATPreviewItem 中声明这些属性,因为您将从QLPreviewItem 协议继承它们。

    所以最好的方法是删除声明。

    【讨论】:

    • 如何将属性属性更改为 atomic 和 strong?
    • @PK86 我不相信你应该覆盖超类(或协议,在这种情况下)的属性的属性。它已经是strong,所以只是atomic 这就是问题所在(一个小的IMO)。一种可能性是在实现中覆盖 setter/getter。但是,我还没有测试过。顺便说一句,您的问题从未提及您要故意更改属性。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-15
    • 1970-01-01
    • 2017-05-12
    • 2016-11-11
    • 2012-05-08
    • 2011-01-31
    • 1970-01-01
    相关资源
    最近更新 更多