Ios 警告';原子';属性';预览EMURL&x27;与从';继承的属性不匹配;QLPreviewItem';

Ios 警告';原子';属性';预览EMURL&x27;与从';继承的属性不匹配;QLPreviewItem';,ios,objective-c,inheritance,properties,protocols,Ios,Objective C,Inheritance,Properties,Protocols,我有一节课 @interface ATPreviewItem : NSObject <QLPreviewItem> @property(atomic, strong) NSURL * previewItemURL; @property(atomic, strong) NSString * previewItemTitle; @end 我收到的警告如下: 属性“previewItemURL”上的“atomic”属性与从“QLPreviewItem”继承的属性不匹配 那么,在没

我有一节课

@interface ATPreviewItem : NSObject <QLPreviewItem> 

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

@end
我收到的警告如下:

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


那么,在没有警告的情况下用重写属性属性声明属性的正确方法是什么呢?

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


因此,最好的方法是删除声明。

如何将属性属性更改为atomic和strong?@PK86我不认为您应该从超类(本例中为协议)重写属性的属性。它已经是
强大的
,所以它只是
原子的
,这是一个小问题。一种可能是重写实现中的setter/getter。不过,我还没有测试过。顺便说一句,你的问题从来没有提到你想故意改变属性。
@property(readonly, nonnull, nonatomic) NSURL * previewItemURL;
@property(readonly, nullable, nonatomic) NSString * previewItemTitle;