Подтвердить что ты не робот

XCode 6.3 Предупреждение: синтезировать свойство

В новом Xcode 6.3 я получаю это предупреждение:

Автоматический синтез свойств не будет синтезировать свойство 'homeInt'; он будет реализован его суперклассом, используйте @dynamic для подтверждения намерения

Как я могу удалить его?

4b9b3361

Ответ 1

Я просто удалил это объявление свойства, поскольку он уже был объявлен в родительском классе

Ответ 2

Если вы переопределяете одно и то же свойство из суперкласса специально:

@implementation MyClass

@dynamic homeInt;

...

Если нет, переименуйте свойство.

Ответ 3

Следуя комментарию @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-property-синтез"

См. также https://github.com/couchbase/couchbase-lite-ios/issues/660

Ответ 4

Если вы не хотите добавлять @dynamic <varName> в каждое место, которое вы переопределили для суперклассического объекта, вы можете добавить флаг -Wno-objc-property-synthesis в "Другие флаги предупреждения" в соответствии с вашими настройками сборки проектов. Это приведет к подавлению предупреждения по всему проекту.

Ответ 5

эта причина по дочернему классу определяет одно и то же имя свойства переопределения родительского класса, например:
1) дочерний класс" AFHTTPSessionManager" определил:

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

2) родительский класс "AFURLSessionManager" определил:

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

3) причина выше, предупреждение придет! если хотите удалить его, просто переименуйте имя свойства конфликта!
4) или, как он предлагает, добавьте" @dynamic homeInt" в ваш файл реализации;

Ответ 6

Если вы обновили Xcode 6.3, просто обновите AFNetworking до версии 2.5.2, и эти предупреждения должны исчезнуть.

Ответ 7

@implementation Myclass

@synthesize homeInt = _ homeInt; ...

@end