我发现在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 {
}