Синглтон метод выпуска выдает предупреждение? - PullRequest
56 голосов
/ 11 сентября 2011

В моем методе синглтон-релиза он ничего не делает:

-(void) release {
  //A whole lot of nothing.
}

Но выдает это предупреждение:

Предупреждение. Конфликт модификаторов распределенных объектов по типу возвращаемого значения при реализации 'release'

Я погуглил и увидел, что у других такая же ошибка, но нет объяснения предупреждения. Кто-нибудь знает, о чем предупреждение?

Ответы [ 2 ]

92 голосов
/ 11 сентября 2011

Вам необходимо объявить его oneway.

- (oneway void) release {}

oneway - это ключевое слово, используемое с распределенными объектами, чтобы указать, что вызов может быть выполнен асинхронно.Поскольку заголовок NSObject использует его при объявлении метода release, вы также должны использовать его.Это не повлияет на вашу программу, если вы не используете распределенные объекты, но удовлетворит компилятор.

13 голосов
/ 11 сентября 2011

В NSObject.h определение метода release возвращает oneway void.

. Ключевое слово oneway используется для распределенных объектов.

Поскольку Xcode4.2 иLLVM, проверки более строгие, и если он был принят предыдущими версиями Xcode или gcc, теперь вам нужно добавить это ключевое слово oneway, чтобы компилятор LLVM прекратил предупреждение об этом.

-(oneway void) release { /* do nothing */ }

Это выиграно 'В вашем коде нет инцидентов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...