将Interface对象作为通知对象传递

时间:2016-09-14 11:40:41

标签: objective-c

我想将接口对象作为通知参数传递。

我有一个像

这样的界面
@interface StudentDetails : NSObject
{
 NSMutableArray*   studentList;
 int         grade;
}
@end

我希望将StudentDetails的对象作为通知参数传递如下:

StudentDetails* pInterfaceCommand1 = [[StudentDetails alloc] init];
// student list is initialize to  1,2 & grade is 10
NSDictionary *userInfo = [NSDictionary dictionaryWithObject:pInterfaceCommand1 forKey:@"aKey"];

    [[NSDistributedNotificationCenter defaultCenter] postNotificationName:@"testNotification" object:nil userInfo:userInfo deliverImmediately:YES];

但我无法在其他课程中收到通知。 但是当我发布如下通知时,我能够收到值1.

NSDictionary* userInfo = @{@"data": @1};
[[NSDistributedNotificationCenter defaultCenter] postNotificationName:@"testNotification" object:nil userInfo:userInfo deliverImmediately:YES];

请告诉我需要做哪些更改。

1 个答案:

答案 0 :(得分:0)

您的代码使用NSDistributedNotificationCenter,这很不寻常。你真的想把通知发送到另一个进程吗?如果需要接收通知的对象位于同一程序中,您通常会使用NSNotificationCenter