在Cocoa中观察分布式对象

时间:2012-03-16 19:55:22

标签: cocoa distributed scripting-bridge

我试图在本地网络计算机上观察iTunes曲目更改。我有一个脚本桥接对象,可以将命令传递给它,但为了找出我必须轮询它的任何信息。我认为分布式对象可能是一种解决方案,但我不确定是否可以通过这种方式观察任何值。有人有这个成功吗?

1 个答案:

答案 0 :(得分:0)

要以这种方式在网络上使用分布式对象,您需要在本地计算机上的客户端连接的iTunes计算机上运行服务器。分布式对象是一种相对简单的方法。

您可以使用分布式通知收听iTunes曲目更改通知,但这些通知仅发布在本地计算机上,因此您的服务器需要侦听这些通知,然后通知客户端。您可以注册以下通知:

NSDistributedNotificationCenter* nc = [NSDistributedNotificationCenter defaultCenter];
[nc addObserver:self
       selector:@selector(trackChanged:)
           name:@"com.apple.iTunes.playerInfo"
         object:nil];

您的trackChanged:方法如下所示:

- (void)trackChanged:(NSNotification*)notification
{
    NSLog(@"%@",notification);
    //do something with [notification userInfo].
}