Метод из категории выдает исключение после обновления до Xcode 4.2 / iOS 5

У меня есть категория, которая расширяет NSMutableArray с помощью метода тасования. Категория объявляется и реализуется в файле .h , который включен в файл .pch . Работал отлично на iOS 3.xx и 4.xx. Вчера я установил Xcode 4.2. Перекомпилированное приложение с базовым SDK, установленным в 5.0, и целью развертывания для 3.2 бросков -[__NSArrayM shuffle]: unrecognized selector sent to instance ...

Я пробовал симулятор iPhone 5.0, симулятор iPad 5.0, iPhone 4G с iOS 5 – без разницы.

Теперь, если я переместил объявление / реализацию в .m где реализован класс, который отправляет сообщение в shuffle приложение работает нормально. Исходный .h действительно импортируется – если я просто скопирую код из исходного .h в .m компилятор жалуется на дублирующее объявление.

Обновление до Xcode 4.2 привело к тому, что компилятор изменился с GCC на Apple LLVM. И LLVM не нравится реализация в .pch. Извлечение реализации в файл .m, импортирование оригинала .h напрямую, компиляция с GCC все решает проблему.

Давайте будем гением компьютера.