XCode 6.3警告:合成属性

XCode 6.3警告:合成属性,xcode,dynamic,warnings,Xcode,Dynamic,Warnings,在新的Xcode 6.3中,我得到了以下警告: 自动属性合成不会合成属性“homeInt”;它将由它的超类实现,使用@dynamic来确认意图 如何删除它?我只是删除了这个属性声明,因为它已经在父类中声明过了,如果您有意从超类重写相同的属性: @implementation MyClass @dynamic homeInt; ... 如果没有,请重命名该属性。此原因由子类定义相同的属性名称覆盖到父类,例如: 1)子类“AFHTTPSessionManager”已定义: @property

在新的Xcode 6.3中,我得到了以下警告:

自动属性合成不会合成属性“homeInt”;它将由它的超类实现,使用@dynamic来确认意图


如何删除它?

我只是删除了这个属性声明,因为它已经在父类中声明过了,如果您有意从超类重写相同的属性:

@implementation MyClass

@dynamic homeInt;

...

如果没有,请重命名该属性。

此原因由子类定义相同的属性名称覆盖到父类,例如:
1)子类“AFHTTPSessionManager”已定义:

@property (nonatomic, strong) AFHTTPResponseSerializer <AFURLResponseSerialization> * **responseSerializer**;
@属性(非原子,强)AFHTTPResponseSerializer***responseSerializer**;
2) 父类“AFURLSessionManager”已定义:

@property (nonatomic, strong) id <AFURLResponseSerialization> **responseSerializer**;
@property(非原子,强)id**responseSerializer**;
3) 由上面引起,警告来了!如果要删除它,只需重命名冲突属性名称!

4)或根据建议,在工具文件中添加“@dynamic homeInt”

如果要避免在有意覆盖超类属性的每个位置添加
@dynamic
,可以将
-Wno objc property synthesis
标志添加到项目生成设置下的“其他警告标志”。这将抑制整个项目范围内的警告。

如果更新到Xcode 6.3,只需将AFNetworking更新到2.5.2版,这些警告就会消失。

在@mplace的评论之后,在我的例子中,我重写了属性,将属性的类型细化为属性原始类的子类。所以,我确实需要@property覆盖

以下是我正在使用的:

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wobjc-property-synthesis"
// superclass type for currentValue was "id"
@property (nonatomic, strong) NSDate *currentValue;
#pragma clang diagnostic pop
请注意,它是“-Wobjc属性合成”,而不是“-Wno objc属性合成”


另请参见实现Myclass

@合成homeInt=uhomeint;


@结束

我看到了同样的网络警告。问题是,这些有什么值得关注的吗?他们需要注意这个图书馆吗?它已经修好了@布拉德托马斯我很高兴我不是唯一一个意外地用分号结束句子的人;这对于AFNetworking属性产生的警告是正确的。最初的问题不是关于其中一个。这并不是在压制对我的警告。。。我正在使用Cocoapods,不确定它是否覆盖了我的标志。-Wno objc属性合成也无法抑制此警告。还有其他人有想法吗?让我来改进一下。当我将其与带有“#pragma-clangdiagnostic-ignored”的代码内联时,它不起作用,但当我将其与编译器标志一起放入时,它确实起作用。我不想让它在我所有的代码中都带有编译器标志…@dynamic更好