лучшие практики для статической библиотеки какао-touch

Я планирую сделать свой следующий проект, используя статическую библиотеку с какао-касанием. Моя цель – полностью отделить мою модель от моего основного проекта. (так что вся передача данных между сервером и предоставление данных в мой основной проект). так что я могу повторно использовать библиотеку в будущем, если есть какая-либо версия iphone.

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

Я хочу знать, что это лучшие практики написания такой статической библиотеки?

С точки зрения языка вы захотите внимательно рассмотреть, что такое открытый метод / член и что является приватным.

Для всех вещей private переместите их в декларацию интерфейса внутри вашего .m-файла:

@interface MyClass() # Variables and Messages declared here are private. @end 

Затем создайте единый файл заголовка, который будет открыт для ваших пользователей всеми общедоступными сообщениями и свойствами.

Когда вы это делаете, будьте особенно осторожны, чтобы документировать ожидания своих пользователей. Ничто не разрушит инкапсуляцию быстрее, чем ожидает возможности / переменной и не сможет увидеть, как ее получить в заголовке docs /.

Пожалуйста, обратитесь к приведенным ниже ссылкам, это помогло мне создать лучшую библиотеку.

Процесс разработки на основе компонентов

Спецификация программного компонента с использованием проекта по контракту

  • CATiledLayer в симуляторе сетчатки iPad обеспечивает низкую производительность
  • NSLocaleUsesMetricSystem всегда ДА на iPad
  • ios: Как открыть контроллер панели вкладок из ViewController с помощью StoryBoards
  • Как кодировать строку URL
  • Проблема цвета фона UINavigationbar setTintColor в iPad 6.0
  • Одиночный / подпиксельный рассогласование divs на ipad и iphone safari
  • Как исправить ошибку Xcode при создании папок lproj в папке en.lproj?
  • Пользовательская категория фотоальбома для ALAssetsLibrary не работает в ipad?
  • Facebook iOS SDK: невозможно отобразить диалоговое окно «прямого сообщения» на iPad (работает на iPhone)
  • Молчание обновления приложений для iOS в режиме единого приложения
  • существующая сетка фотографий UITableView не вращается правильно?
  • Interesting Posts

    Testflight не может установить приложение

    Разница между -all_load и -ObjC

    В чем разница между встроенными бинарниками и связанными структурами

    Установите программно загруженный ipa на устройстве iOS

    Программировать включение / выключение Wi-Fi на реальном устройстве iOS с помощью автоматизации пользовательского интерфейса

    В мобильном устройстве отображается только ограниченное количество контактов, по сравнению с ПК

    Нажмите и удерживайте кнопку «повторить огонь»

    Установить UIImageView Size в UITableViewCell, когда UIImage загружен из URL?

    Как сделать indexOfObject или надлежащий containsObject

    Можно ли использовать сенсорный идентификатор, чтобы многие люди могли использовать один и тот же iPhone?

    принадлежностьButtonTappedForRowWithIndexPath не работает для пользовательской кнопки или метки

    Невозможно отредактировать профиль подготовки в новом веб-интерфейсе Apple

    Фокусное изображение iOS UIView

    Экспорт AVAssetExportSession не может быть детерминирован с ошибкой: «Операция остановлена, NSLocalizedFailureReason = Видео не может быть составлено».

    Можно ли напечатать тип функции в Swift?

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