作者dryman (dryman)
看板Perl
标题[心得] 用NSConnection来做scriptable app
时间Thu Jan 27 12:40:27 2011
※ [本文转录自 MacDev 看板 #1DG55uAm ]
作者: dryman (dryman) 看板: MacDev
标题: [心得] 用NSConnection来做scriptable app
时间: Thu Jan 27 00:53:09 2011
我是个perl的爱好者
无奈perl不像python/ruby一样有官方的cocoa binding
只有Foundation有官方支援
(cocoa有人自己做binding,但是我的电脑由於wxwidget烂掉不能用)
经过研究後发现有个东西可以用,就是NSConnection
由於他在Foundation.framework里面,所以perl也可以使用
=======
obj-c的部份,在application delegate中
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
// Insert code here to initialize your application
id connection = [NSConnection defaultConnection];
[connection setRootObject:self];
[connection registerName:@"testServer"];
}
注册一个testServer的名称,等会由其他的程式来读取
在perl或其他script language中:
#!/usr/bin/perl
use Foundation;
$server = NSConnection->
rootProxyForConnectionWithRegisteredName_host_("testServer",0);
# 把注册名称的这个物件抓出来
if (!$server or !$$server) {
print "Can't get server\n";
}
else{
print "can reach server\n";
$server->retain();
$server->myAlert_("hello world!\n");
$server->release();
}
myAlert是我自己写的obj-c method
这边想弄什麽method/getter/setter都ok的啦~~
使用时要先把obj-c server的程式启动
然後再用perl去遥控它
因此,程式当中只要多加上那一小段NSConnection的程式码
附上自己程式中一部分架构的文件
整个程式就可以透过NSConnection来遥控了
真的是蛮好玩的hack XD
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.45.169.142
※ 编辑: dryman 来自: 114.45.169.142 (01/27 00:53)
1F:推 sinread:赞 (fb玩太多...) 01/27 11:52
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.46.171
2F:推 push1997:GJ 说到FB 我加入PERL的粉丝团~隔天有各外国人就把我加 02/02 19:00
3F:→ push1997:朋友 原来是要我帮他写作业~=.= 要人写作业的不分国籍 02/02 19:01
4F:→ push1997:不过他们大一计概就有学PERL要交作业 02/02 19:02