Определение строк имен для использования NSNotification без сопряжения
Я собираюсь использовать NSNotifications в моем приложении, чтобы отделить код.
Я хочу, чтобы компилятор помог мне при использовании строк в качестве имен уведомлений, т. е., если я ошибусь, я хочу, чтобы компилятор сказал мне.
Использование обычных строк для этого не будет работать, потому что компилятор не будет знать, что если я набрал "myNotificaion"
, что я действительно имел в виду "myNotification"
.
Одним из способов сделать это было бы использовать переменные #defines или const NSString, но это означало бы, что они должны быть объявлены в файле - либо класс, из которого они происходят, либо глобально включенный файл.
Проблема с объявлением их в классе, из которого они происходят, заключается в том, что он должен быть включен везде, где прослушиваются уведомления, поэтому создается соединение, которое мне не нужно.
Проблема с глобальным файлом заключается в том, что он может стать длинным и беспорядочным и будет содержать много несвязанных вещей.
Есть ли способ достичь этого без этой связи или неопрятность??
1 ответ:
Нет, насколько мне известно, # defines и константы NSString находятся там, где они есть, и вы не можете обойти необходимость включать их в любой файл, требующий доступа к строке.
Вы можете создать заголовочные файлы для различных частей вашего приложения, например
JJDocumentNotifications.h
иJJViewNotifications.h
. Затем вы можете # импортировать их в свой предварительно скомпилированный заголовок (.pch) файл, поэтому файл выглядит примерно так:#import <Cocoa/Cocoa.h> #import "JJDocumentNotifications.h" #import "JJViewNotifications.h"
Таким образом, заголовки будут автоматически включены во все файлы в вашей цели, и вам не нужно будет импортировать их специально.