将数组/对象从Javascript传递到Objective-C

卡梅利恩博士

我的问题应该很容易回答,但是我似乎在Apple文档中找不到任何内容

从我的JS代码中,我正在调用带有数组参数的Objective-C函数。例如:

ObjC.someFunction_([1,2,3]);

现在在Objective-C中,我们有:

- (void)someFunction:(WebScriptObject*)arr
{

}

正如苹果建议的那样。(如果这是一个简单的字符串,那将是完全不同的-而且更简单-故事)。

问题是:如何将这个WebScriptObject转换为NSArray

卡梅利恩博士

只是想到了一种可行的解决方法(尽管它仍然是一种解决方法):

在JS中:

ObjC.someFunction_(JSON.stringify([1,2,3]));

在Objective-C中:

- (void)someFunction:(NSString*)arrStr
{
    NSArray* arr = [NSJSONSerialization JSONObjectWithData:[arrStr dataUsingEncoding:NSUTF8StringEncoding] 
                                                   options:kNilOptions 
                                                     error:nil];
}

在示意图中:

  • Javascript->对象到Json-> Objective-C-> Json到对象

附言:我敢肯定,必须有更优雅的方法(JavaScriptCore也许通过很少记录的方法?),但是这种方法仍然可以解决问题!;-)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章