我如何解释返回的记录作为nsapplescript结果



我使用nsapplescript使用executeandreturnerror方法从Objective-C应用程序运行AppleScript。这将返回一个包含脚本结果的NSAppleEventDescriptor对象。我的脚本返回一个苹果记录。如何解释Objective-C中的记录?例如,如果返回的脚本记录为{name:" jakob",则电话:" 12345678"}如何在名称属性中获取字符串" jakob"?

这是一种将记录转换为词典的方法。请注意,我没有尝试过,但应该起作用。

另外,您的"名称"键不是AppleScript中使用的好键,因为"名称"具有AppleScript的其他含义。我经常在记录中使用它遇到问题。我建议更改它之类的东西,例如" thatame"或在bars | name |。

中使用它。
-(NSDictionary*)recordToDictionary:(NSAppleEventDescriptor*)theDescriptor {
    NSUInteger j,count;
    id thisDescriptor = [theDescriptor descriptorAtIndex:1];
    count = [thisDescriptor numberOfItems];
    NSMutableDictionary* thisDictionary = [NSMutableDictionary dictionaryWithCapacity:count/2];
    for (j=0; j<count; j=j+2) {
        NSString* theKey = [[thisDescriptor descriptorAtIndex:(j+1)] stringValue];
        NSString* theVal = [[thisDescriptor descriptorAtIndex:(j+2)] stringValue];
        [thisDictionary addEntriesFromDictionary:[NSDictionary dictionaryWithObject:theVal forKey:theKey]];
    }
    return (NSDictionary*)[[thisDictionary retain] autorelease];
}

当然,在记录以字典格式之后,您可以只使用" valueforkey:"字典上的实例方法获取" jacob"。

相关内容

  • 没有找到相关文章

最新更新