Spec-Zone .ru
спецификации, руководства, описания, API

Библиотека Разработчика iOS

Разработчик

Ссылка платформы основы ссылка класса NSNotification

Опции
Развертывание Target:

На этой странице
Язык:

NSNotification

Наследование


Оператор импорта


Swift

import Foundation

Objective C

@import Foundation;

Доступность


Доступный в iOS 2.0 и позже.

Объекты NSNotification инкапсулируют информацию так, чтобы она могла быть широковещательно передана к другим объектам объектом NSNotificationCenter. Объект NSNotification (называемый уведомлением) содержит имя, объект и дополнительный словарь. Имя является тегом, идентифицирующим уведомление. Объект является любым объектом, который плакат уведомления хочет отправить наблюдателям того уведомления (обычно, это - объект, отправивший уведомление). Словарь хранит другие связанные объекты, если таковые имеются. Объекты NSNotification являются неизменными объектами.

Можно создать объект уведомления с методами класса notificationWithName:object: или notificationWithName:object:userInfo:. Однако Вы обычно не создаете свои собственные уведомления непосредственно. Методы NSNotificationCenter postNotificationName:object: и postNotificationName:object:userInfo: позвольте Вам удобно отправлять уведомление, не создавая его сначала.

Объектное сравнение

Объекты уведомления сравнены с помощью равенства указателя для локальных уведомлений. Распределенные строки использования уведомлений как их объекты и те строки сравнены с помощью isEqual: потому что равенство указателя не целесообразно через границы процесса.

Создание подклассов

Можно разделить на подклассы NSNotification содержать информацию в дополнение к имени уведомления, объекту и словарю. Эти дополнительные данные должны быть согласованы между notifiers и наблюдателями.

NSNotification является кластером класса без переменных экземпляра. Также, необходимо разделить на подклассы NSNotification и переопределите примитивные методы name, object, и userInfo. Можно выбрать любой определяемый инициализатор, который Вы любите, но быть уверенным, что Ваш инициализатор не вызывает [super init]. NSNotification не предназначен, чтобы быть инстанцированным непосредственно, и init метод повышает исключение.

  • Возвращает новый объект уведомления с указанным именем и объект.

    Объявление

    Swift

    convenience init(name aName: String, object anObject: AnyObject?)

    Objective C

    + (instancetype)notificationWithName:(NSString *)aName object:(id)anObject

    Параметры

    aName

    Имя для нового уведомления. Может не быть nil.

    anObject

    Объект для нового уведомления.

    Оператор импорта

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

    Доступный в iOS 2.0 и позже.

    См. также

    postNotificationName:object: (NSNotificationCenter)

  • Возвращает объект уведомления с указанным именем, объект и информацию о пользователе.

    Объявление

    Objective C

    + (instancetype)notificationWithName:(NSString *)aName object:(id)anObject userInfo:(NSDictionary *)userInfo

    Параметры

    aName

    Имя для нового уведомления. Может не быть nil.

    anObject

    Объект для нового уведомления.

    userInfo

    Словарь информации о пользователе для нового уведомления. Может быть nil.

    Оператор импорта

    Objective C

    @import Foundation;

    Доступность

    Доступный в iOS 2.0 и позже.

  • init (name:object:userInfo:) - initWithName:object:userInfo: Определяемый инициализатор

    Инициализирует уведомление с указанным именем, объектом и информацией о пользователе.

    Объявление

    Swift

    init(name aName: String, object object: AnyObject?, userInfo userInfo: [NSObject : AnyObject]?)

    Objective C

    - (instancetype)initWithName:(NSString *)aName object:(id)object userInfo:(NSDictionary *)userInfo

    Параметры

    aName

    Имя для нового уведомления. Может не быть nil.

    object

    Объект для нового уведомления.

    userInfo

    Словарь информации о пользователе для нового уведомления. Может быть nil.

    Оператор импорта

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

    Доступный в iOS 4.0 и позже.

  • name Свойство

    Имя уведомления. (только для чтения)

    Объявление

    Swift

    var name: String { get }

    Objective C

    @property(readonly, copy) NSString *name

    Обсуждение

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

    Специальные замечания

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

    Оператор импорта

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

    Доступный в iOS 2.0 и позже.

  • object Свойство

    Объект связался с уведомлением. (только для чтения)

    Объявление

    Swift

    var object: AnyObject? { get }

    Objective C

    @property(readonly, retain) id object

    Обсуждение

    Это часто - объект, отправивший это уведомление. Это может быть nil.

    Обычно Вы используете этот метод для обнаружения то, что возражает, что уведомление применяется к при получении уведомления.

    Например, предположите регистрацию объекта получить сообщение handlePortDeath: когда уведомление «PortInvalid» отправляется на центр уведомления и это handlePortDeath: потребности получить доступ к объекту, контролирующему порт, который теперь недопустим. handlePortDeath: может получить тот объект как показано здесь:

    • - (void)handlePortDeath:(NSNotification *)notification
    • {
    • ...
    • [self reclaimResourcesForPort:notification.object];
    • ...
    • }

    Оператор импорта

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

    Доступный в iOS 2.0 и позже.

  • userInfo Свойство

    Словарь информации о пользователе связался с получателем. (только для чтения)

    Объявление

    Swift

    var userInfo: [NSObject : AnyObject]? { get }

    Objective C

    @property(readonly, copy) NSDictionary *userInfo

    Обсуждение

    Может быть nil.

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

    Например, в Наборе Приложения, объекты NSControl отправляют NSControlTextDidChangeNotification каждый раз, когда полевой редактор (объект NSText) изменяет текст в NSControl. Это уведомление обеспечивает объект NSControl как связанный объект уведомления. Для обеспечения доступа к полевому редактору объект NSControl, регистрация уведомления добавляет полевого редактора к словарю информации о пользователе уведомления. Объекты, получающие уведомление, могут получить доступ к полевому редактору и объекту NSControl регистрация уведомления следующим образом:

    • - (void)controlTextDidBeginEditing:(NSNotification *)notification
    • {
    • NSText *fieldEditor = [notification.userInfo
    • objectForKey:@"NSFieldEditor"]; // the field editor
    • NSControl *postingObject = notification.object; // the object that posted the notification
    • ...
    • }

    Оператор импорта

    Objective C

    @import Foundation;

    Swift

    import Foundation

    Доступность

    Доступный в iOS 2.0 и позже.