Навсегда игнорируя предупреждения - PullRequest
5 голосов
/ 16 февраля 2009

У меня есть проект, который компилируется с некоторыми предупреждениями. Это проект iPhone, который использует некоторые методы NSDate, которые, похоже, не являются заголовками iPhone SDK, но работают безупречно. Когда я вызываю эти методы, я получаю предупреждения вроде:

NSDate предупреждений http://beautifulpixel.com/assets/NSDate_Warnings-20090215-235727.png

Так как же я навсегда отключить предупреждения, чтобы сказать XCode "все в порядке, правда".

Или как мне исправить предупреждения? Этот код отлично работает на устройстве, и Apple уже одобрила приложение, использующее те же методы, поэтому, конечно же, я смогу заставить XCode понять, что методы действительно есть.

Ответы [ 5 ]

8 голосов
/ 16 февраля 2009

Я очень советую вам не использовать эти методы. То, что они объявлены в платформе Foundation Mac OS X, не мешает им быть частным API на iPhone. Apple вполне могла бы прекратить ваше приложение из магазина. Аналогично, ничто не мешает Apple немного привести в порядок Foundation для iPhone OS 2.2.2 или более поздней версии и убрать эти два метода, тем самым сломав ваше приложение.

3 голосов
/ 16 февраля 2009

Вы можете написать короткое расширение интерфейса в начале вашего файла .m, чтобы подавить эти предупреждения

Пример:

@interface NSDate (SuppressSomWarnings)
- (void)dateWithNaturalLanguageString:(NSString*)_str;
@end
2 голосов
/ 16 февраля 2009

Странно, я не получаю никаких предупреждений, когда набираю те же две строки ... Правильно ли вы импортировали заголовки и фреймворки в свой проект?

Я вижу, что они определены в NSCalendateDate.h, который находится в Foundation.framework.

В противном случае вы можете попытаться включить определения интерфейса непосредственно в ваш код, например, в верхней части вашего файла .m, чтобы посмотреть, избавится ли он от предупреждений. (См. Ответ эпателя, который пришел, когда я писал это!)

0 голосов
/ 16 февраля 2009

Ваш код может работать в симуляторе, но работает ли он на телефоне?

В симуляторе используется платформа OS X Foundation, представляющая собой расширенный набор функций, доступных на iPhone.

0 голосов
/ 16 февраля 2009

Правильно ли настроен SDK? Возможно, вам понравится новейшая версия, но вы используете старые заголовочные файлы.

...