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


Я собираюсь использовать NSNotifications в моем приложении, чтобы отделить код.

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

Использование обычных строк для этого не будет работать, потому что компилятор не будет знать, что если я набрал "myNotificaion", что я действительно имел в виду "myNotification".

Одним из способов сделать это было бы использовать переменные #defines или const NSString, но это означало бы, что они должны быть объявлены в файле - либо класс, из которого они происходят, либо глобально включенный файл.

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

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

Есть ли способ достичь этого без этой связи или неопрятность??

1 2

1 ответ:

Нет, насколько мне известно, # defines и константы NSString находятся там, где они есть, и вы не можете обойти необходимость включать их в любой файл, требующий доступа к строке.

Вы можете создать заголовочные файлы для различных частей вашего приложения, например JJDocumentNotifications.h и JJViewNotifications.h. Затем вы можете # импортировать их в свой предварительно скомпилированный заголовок (.pch) файл, поэтому файл выглядит примерно так:

#import <Cocoa/Cocoa.h>
#import "JJDocumentNotifications.h"
#import "JJViewNotifications.h"

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