如果您运行 ruby 脚本并使用ASTranslate
它,则应将原始 appscript 命令转换为 Objc-appscript。
编辑01:
我认为它看起来像这样。我还没有运行该工具来制作胶水代码,所以我猜测应用程序名称的显示方式。
#import "AddressBookGlue.h" //Dont know the precise name
AddressBookApplication *abApp=[[AddressBookApplication alloc] initWithName: @"Address Book.app"];
NSString *desiredEmail=@"sam.brown@foo.com"
NSString *returnedName= [[[[[[abApp people] emails] value] contains:desiredEmail] name] get];
基本上,它遵循 Objectic-c 从点语法转换时使用的相同规则:在原始语法中任何有点的地方,都希望在 Objective-C 中使用括号。
我可能会补充一点,如果您要编写大量此类脚本,最好花一两天时间学习 ruby 或 python 的基础知识。在点语法中使用 OSA 比使用嵌套语法要容易得多。只需查看 Objc-appscript 文档中的所有括号,我的眼睛就会流泪。