JS交互: Swift

关键字: convention 、 unsafeBitCast .

//        演示闭包也可以当做JS的函数
        // 1.声明闭包  JS函数真正对应的是NSBlock  所以在此处@convention(block)做block转换
        let func2: @convention(block) (Int, Int) -> Int =  { (num1, num2) in
            return num1 + num2
        }
        // 2. 利用上下文 将func2置为JS中的函数
        // 第一个参数是将闭包func2强转成AnyObject类型
        // 第二个参数 闭包func2在JS中叫什么?
        context.setObject(unsafeBitCast(func2, AnyObject.self), forKeyedSubscript: "block")
        // 3.利用JS的代码实现该函数  该函数在JS中叫做block 所以需要调用block实现
        let value3 = context.evaluateScript("block(4,5);")
        print(value3)

你可能感兴趣的:(JS交互: Swift)