XCode 6.3警告:合成属性

时间:2015-04-09 09:26:53

标签: xcode dynamic warnings

在新的Xcode 6.3中,我收到了这个警告:

  

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

我如何删除它?

7 个答案:

答案 0 :(得分:107)

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

@implementation MyClass

@dynamic homeInt;

...

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

答案 1 :(得分:62)

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

中声明了

答案 2 :(得分:10)

关于@ 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

答案 3 :(得分:5)

如果您想避免在每个地方添加@dynamic <varName>您已有意覆盖超级类的属性 ,则可以将-Wno-objc-property-synthesis标记添加到&# 34;其他警告标志&#34;在您的项目下构建设置。这将禁止项目范围内的警告。

答案 4 :(得分:3)

这个原因由子类定义了与父类相同的属性名覆盖,例如:
1)儿童班&#34; AFHTTPSessionManager&#34;有定义:

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

2)父类&#34; AFURLSessionManager&#34;有定义:

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

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

答案 5 :(得分:0)

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

答案 6 :(得分:0)

@implementation Myclass

@synthesize homeInt = _ homeInt; ...

@end