Iphone 在CFNotification中传递NSObject

Iphone 在CFNotification中传递NSObject,iphone,objective-c,notifications,Iphone,Objective C,Notifications,如何使用CFNotifications将NSObject传递给另一个类?我需要使用CFNotifications来完成我要做的事情,所以NSNotifications将无法工作 我考虑过将NSObject转换为该对象的一种CFString id,然后在另一个进程(接收CFString通知的进程)上使用该CFString重新创建NSObject,但我不知道如何做到这一点 请帮忙 Pedro Franceschi。使用cf通知中心PostNotification可以执行以下操作: // ~~~~~~

如何使用CFNotifications将NSObject传递给另一个类?我需要使用CFNotifications来完成我要做的事情,所以NSNotifications将无法工作

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

请帮忙


Pedro Franceschi。

使用
cf通知中心PostNotification
可以执行以下操作:

// ~~~~~~~~~~~~~~~~~~~
// 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,请省略
\u桥
s。

我在其他代码中尝试过,现在我得到了“此范围中未声明”。。。为什么?我现在正试图在iPhone上编译这些代码。。。它也需要使用CFNotifications。我在没有桥的情况下尝试过,但没有成功。在我接收CFNotification的过程中,对象为(null),当我发布通知时,对象不为null。可能是因为对象在收到通知之前已释放。您需要找到某种方法在仍然收到通知时保持该对象的活动状态。也许您可以在添加观察者之前
保留
对象,然后在删除观察者之前
释放
对象>我尝试保留对象,即使保留了NSString,它也不起作用。在我接收通知的一侧,对象为空。还有其他想法吗?