RegexKit и RegexKitLite с Xcode 4 получают "семантическую проблему" ошибки / предупреждения - PullRequest
1 голос
/ 14 марта 2012

Я использую Xcode 4.3 на Mac OS X 10.7.3. Базовый SDK и Развертывание - OS X 10.6.

Когда я использую RegexKitLite, я получаю множество предупреждений компилятора: 'Semantic Issue'
Передача 'void * volatile __strong *' параметру типа 'void * __ strong *' отбрасывает квалификаторы
и
Передача 'void * volatile __strong *' параметру типа 'void * __ strong * volatile' отбрасывает квалификаторы

Хотя они кажутся безвредными, это очень раздражает, так как я в основном стремлюсь к нулевым предупреждениям. Нет обновлений RegexKitLite с 2010/04/18, и нет обсуждения проблем с Xcode 4 на sourceforge. С Xcode 3.2 я не получил эти предупреждения.

Есть ли способ отключить все предупреждения только для RegexKitLite?
Или обновление для RegexKitLite?

Я также попытался установить фреймворк RegexKit вместо RegexKitLite, но этот пакет не обновлялся с 2008/01/29, и инструкции по установке не применимы к Xcode 4, и нет никаких обсуждений sourceforge по вопросам, и не совсем в другом месте из того, что я видел. Поскольку среда RegexKit является более мощной, чем версия Lite, я заинтересовался ею, и на iPhone: RegexKit против RegexKit lite - прохождение массива занимает очень очень много времени автор этих пакетов говорит, что RegexKit превосходит версию Lite, потому что она имеет много оптимизаций.

Тем не менее, я установил RegexKit Framework, используя подсказки от Как «добавить существующие платформы» в Xcode 4? и http://www.thinketg.com/Company/Blogs/11-03-20/Xcode_4_Tips_Adding_frameworks_to_your_project.asp

Тем не менее, я получаю 'Semantic Issue' также здесь, но теперь это ошибки в заголовочном файле, а не только предупреждения:
Указатель на тип функции 'NSString *' не может быть квалифицирован как 'restrict'
Так что он даже не скомпилируется!

Является ли фреймворк RegexKit даже несовместимым с Xcode 4?

Я не нашел никакой информации об этом, кроме ссылки http://www.ohloh.net/p/AGP-Launcher/commits/126607585, в которой говорилось, что он "изменен на RegexKitLite, поскольку RegexKit не поддерживается в XCode 4".

1 Ответ

2 голосов
/ 22 марта 2012

С помощью clang я отключил предупреждения следующим образом:

В верхней части RegexKitLite.m:

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wincompatible-pointer-types"

И в нижней части:

#pragma clang diagnostic pop
...