Определение строк имени для использования NSNotification без связи - PullRequest
2 голосов
/ 17 ноября 2009

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

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

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

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

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

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

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

1 Ответ

1 голос
/ 17 ноября 2009

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

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

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

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

...