2013-09-09 4 views
1

Недавно я унаследовал некоторый код приложения IOS, содержащий статический объектный класс C, который содержит данные, разделяемые между различными классами в приложении. Это очень элегантный дизайн, и я уже использовал его для своих дополнений к коду. Структура синглтона очень похожа на это postГде находится этот синглтон?

Есть только одна вещь, из-за которой меня отвлекает. Ни один объект Objective C, который использует этот singleton, не импортирует его заголовочный файл; но все они имеют доступ к объявленному интерфейсу реализации. Это немного похоже на «пугающие взаимодействия с расстояния» для меня. Введите имя синглтона и xcode, чтобы предложить завершение для вашего кода. Когда компилируется компилятор, улыбается и не жалуется на недостающее объявление.

Да, я проверил импорт, который импортирует заголовок, ни один из них не делает. Я сделал простой тестовый класс, который включал только свой собственный заголовок, но там, в методах, я могу разместить имя синглтона и получить к нему доступ.

Так что мой вопрос: кто или что делает этот автоматический импорт? Xcode? Цель C? Маленькие зеленые инопланетяне?

+2

Включен ли он в файл '.pch'? –

+0

Что сказал Брайан, вы, скорее всего, найдете его в своих проектах, предварительно скомпилированном заголовке. Он должен находиться в группе «Поддерживаемые файлы» с именем типа «<имя-проекта» -Prefix.pch'. – Joe

+0

Вы пригвоздили его Брайан, хотите рассказать это как ответ? Я с радостью проверил бы тебя. – gjpc

ответ

0

Его где-то там, вы можете использовать

find . -type f -exec grep -n -H "Beer.h" {} \; 

в каталоге проектов, где Beer.h является имя файла вашей Singleton.

+2

... или просто Xcode "search navigator" (⌘3), ища 'Beer.h' – Cyrille

+0

добавить -r в этот grep Pétur и вам не нужно найти – gjpc

+0

No @gjpc find предоставляет список файлов во всех подкаталогах grep. –