Передайте NSObject в CFNotification - PullRequest
0 голосов
/ 17 октября 2011

Как я могу передать NSObject другому классу, используя CFNotifications?Мне нужно использовать CFNotifications для того, что я пытаюсь сделать, поэтому NSNotifications не будут работать.

Я думал о преобразовании NSObject в своего рода идентификатор CFString этого объекта, а затем воссоздание NSObject на другомпроцесс (который получает CFNotification) с этим CFString, но я понятия не имею, как это сделать.

Пожалуйста, помогите,

Педро Франчески.

1 Ответ

1 голос
/ 17 октября 2011

С CFNotificationCenterPostNotification вы можете сделать это:

// ~~~~~~~~~~~~~~~~~~~
// SOMEWHERE IN A FUNCTION OR METHOD:
// ~~~~~~~~~~~~~~~~~~~

id object = /* Assume this exists */;
CFNotificationCenterPostNotification(aCenter, CFSTR("NotificationName"), (__bridge void *) object, NULL, true);

// ~~~~~~~~~~~~~~~~~~~
// LATER IN YOUR CODE:
// ~~~~~~~~~~~~~~~~~~~

void receivedNotification(CFNotificationCenterRef center, void *observer, CFStringRef name, const void *object, CFDictionaryRef userInfo)
{
    id object = (__bridge id) object;
    /* Do stuff with `object`. */
}

Не указывайте __bridge s, если вы не используете ARC.

...