在CFNotification中传递NSObject

时间:2011-10-17 03:12:23

标签: iphone objective-c notifications

如何使用CFNotifications将NSObject传递给另一个类?我需要将CFNotifications用于我正在尝试做的事情,因此NSNotifications将不起作用。

我考虑过将NSObject转换为该对象的一种CFString id,然后在另一个进程(接收CFNotification)上用该CFString重新创建NSObject,但我不知道如何做到这一点。 / p>

请帮忙,

Pedro Franceschi。

1 个答案:

答案 0 :(得分:1)

使用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`. */
}

如果您不使用ARC,请忽略__bridge