XCode 6.3警告:合成属性

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了XCode 6.3警告:合成属性相关的知识,希望对你有一定的参考价值。

在新的Xcode 6.3中,我收到此警告:

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

我怎么能删除它?

答案

我只是删除了这个属性声明,因为它已经在父类中声明了

另一答案

如果您故意覆盖超类中的同一属性:

@implementation MyClass

@dynamic homeInt;

...

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

另一答案

继@ 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-property-synthesis”而不是“-Wno-objc-property-synthesis”

另见https://github.com/couchbase/couchbase-lite-ios/issues/660

另一答案

如果你想避免添加@dynamic <varName>你有意覆盖超级类属性的每个地方,你可以在项目构建设置下将-Wno-objc-property-synthesis标志添加到“Other Warning Flags”。这将抑制项目范围内的警告。

另一答案

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

@property (nonatomic, strong) AFHTTPResponseSerializer <AFURLResponseSerialization> * **responseSerializer**;

2)父类“AFURLSessionManager”定义了:

@property (nonatomic, strong) id <AFURLResponseSerialization> **responseSerializer**;

3)由上述原因,警告来了!如果想删除它,只需重命名冲突属性名称! 4)或者按照它的建议,在你的工具文件中添加“@dynamic homeInt”;

另一答案

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

另一答案

@implementation Myclass

@synthesize homeInt = _ homeInt; ...

@结束

以上是关于XCode 6.3警告:合成属性的主要内容,如果未能解决你的问题,请参考以下文章

如何抑制 LLVM 自动合成警告?

自动属性合成 (@property) 和继承

Xcode自定义代码块

Xcode Storyboard 警告未提供上下文:不支持的约束属性配置

如何在 Swift(Xcode 6.3)中翻转标签(获取镜像视图)

如何在 Xcode 6.3 中安装 Quick and Nimble