【问题标题】:Pass array/object from Javascript to Objective-C将数组/对象从 Javascript 传递到 Objective-C
【发布时间】:2014-09-18 08:00:53
【问题描述】:

我的问题应该很容易回答,但我似乎在Apple's documentation 中找不到任何东西

从我的 JS 代码中,我使用数组参数调用了一个 Objective-C 函数。例如:

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

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

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

}

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

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

【问题讨论】:

    标签: javascript objective-c macos cocoa webview


    【解决方案1】:

    只是想到了一个可以正常工作的解决方法(尽管它仍然是一个解决方法):

    在 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?),但这仍然有效! ;-)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多