//Client:<pre name="code" class="objc">CPDistributedMessagingCenter *messagingCenter;
messagingCenter = [CPDistributedMessagingCenter centerNamed:@"unique.name.for.messaging.center"];
// One-way (message only)
[messagingCenter sendMessageName:@"message" userInfo:nil/* optional dictionary. in this example it will be ignored. */];
// Two-way (wait for reply)
NSDictionary *reply;
reply = [messagingCenter sendMessageAndReceiveReplyName:@"messageThatHasInfo" userInfo:nil/* optional dictionary */];
</pre><pre name="code" class="objc">//Server:
-(id)init... {
...
CPDistributedMessagingCenter *messagingCenter;
// Center name must be unique, recommend using application identifier.
messagingCenter = [CPDistributedMessagingCenter centerNamed:@"unique.name.for.messaging.center"];
[messagingCenter runServerOnCurrentThread];
// Register Messages
[messagingCenter registerForMessageName:@"messageThatHasInfo" target:self selector:@selector(handleMessageNamed:withUserInfo:)];
[messagingCenter registerForMessageName:@"message" target:self selector:@selector(handleSimpleMessageNamed:)];
...
}
- (NSDictionary *)handleMessageNamed:(NSString *)name withUserInfo:(NSDictionary *)userinfo {
// Process userinfo (simple dictionary) and return a dictionary (or nil)
}
- (void)handleSimpleMessageNamed:(NSString *)name {
// ...
}
注意是私有,越狱开发可以用;类似于Mac上的NSDistributedNotificationCenter 但是不能广播,不知道有没有这个功能的api
Link: http://www.iphonedevwiki.net/index.php/CPDistributedMessagingCenter