如何使用CFNotifications将NSObject传递给另一个类?我需要将CFNotifications用于我正在尝试做的事情,因此NSNotifications将不起作用。
我考虑过将NSObject转换为该对象的一种CFString id,然后在另一个进程(接收CFNotification)上用该CFString重新创建NSObject,但我不知道如何做到这一点。 / p>
请帮忙,
Pedro Franceschi。
答案 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
。