Какой самый простой способ реализовать собственные функции, которые повсеместно используются в большом проекте? - PullRequest
3 голосов
/ 20 мая 2009

Я хочу создать набор функций, которые облегчат жизнь. Я использую их примерно в 60% всех файлов проекта. Интересно, как наиболее эффективно включить их в проект?

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

Ответы [ 3 ]

6 голосов
/ 20 мая 2009

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

Если это так, есть примерно три варианта:

  • Добавьте что-нибудь к своему делегату приложения - это хорошее место для хранения общесистемных функций, которые контролируют общую модель или само приложение.
  • создайте класс signleton для хранения ваших методов. Либо фактический синглтон, либо класс только с методами класса (т. Е. Объявленными с начальным + вместо -)
  • путем добавления категории в системный класс.

Я думаю, что в целом вы не хотите принимать одно решение для всех ваших служебных методов - вы должны использовать каждый метод (или группу методов) в каждом конкретном случае и делать правильные вещи. Например, если у вас есть метод, который отображает ваш собственный стиль диалога ошибок, вы можете поместить его в AppDelegate. Если у вас есть метод для перевода строки на французский, вы можете добавить его в качестве категории NSString.

В общем, категории здесь ваши друзья - они могут быть заключены в один .h и .m, чтобы их было легко перемещать по проектам, и в то же время их доступность соответствует целевым классам.

Если вы не посмотрите на реализацию синглтона. См. обсуждение Мэтта Галлагера о том, как это сделать.

Наконец, если это действительно правильное решение, добавьте свой AppDelegate - возможно, с категорией; -)

3 голосов
/ 20 мая 2009

Файл prefix.pch, который есть в вашем проекте xcode, используется для добавления всех операторов импорта, которые вам понадобятся во всех / почти во всех классах вашего проекта.

В этот файл записывается импорт UIKit и Foundation.

Так что просто добавьте свое утверждение импорта в этот файл, и все готово. Вы найдете его в папке «Другие источники» в разделе «Группы и файлы»

1 голос
/ 20 мая 2009

Вы можете включить свои заголовки в ProjectName_Prefix.pch, я думаю.

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