[心得] 用NSConnection來做scriptable app
我是個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)
推
01/27 11:52, , 1F
01/27 11:52, 1F
→
01/27 17:30, , 2F
01/27 17:30, 2F
→
01/27 17:30, , 3F
01/27 17:30, 3F
→
01/27 17:31, , 4F
01/27 17:31, 4F
→
01/27 17:42, , 5F
01/27 17:42, 5F
→
01/27 17:43, , 6F
01/27 17:43, 6F
推
01/28 09:17, , 7F
01/28 09:17, 7F
→
01/28 13:36, , 8F
01/28 13:36, 8F
→
01/28 13:36, , 9F
01/28 13:36, 9F
→
01/29 15:42, , 10F
01/29 15:42, 10F
推
01/29 23:03, , 11F
01/29 23:03, 11F
MacDev 近期熱門文章
PTT數位生活區 即時熱門文章