我发现在JS和Obj-C之间传递对象的唯一方法是通过使用JSON.stringify()编码JS对象并将json字符串传递给PhoneGap.exec来实现。

PhoneGap.exec('Alarm.update',JSON.stringify(list));


...并在Obj-C中重建对象:

NSString *jsonStr = [arguments objectAtIndex:0];
jsonStr = [jsonStr stringByReplacingOccurrencesOfString:@"\\\"" withString:@"\""];
jsonStr = [NSString stringWithFormat:@"[%@]",jsonStr];
NSObject *arg = [jsonStr JSONValue];


正确吗?有没有更好/适当/官方的方式可以做到这一点?

最佳答案

我认为这是最好的方法,即使不是唯一的方法。

PhoneGap.exec调用只是隐藏了对象的NSDictionary,所以我看不到有更好的方法来处理它。

大多数方法的结构如下

- (void)someMethod:(NSArray*)arguments withDict:(NSDictionary*)options {
}

09-05 06:13