繁体   English   中英

使用Swift iOS中的Javascriptcore框架将NSobject传递给javascript

[英]Passing NSobject to javascript using Javascriptcore framework from Swift iOS

我正在开发一个自定义的cordova插件。 我需要使用NSObject作为参数从iOS(Swift)调用javascript方法。

let methodToBeCalled = context.objectForKeyedSubscript("videoStreamAvailableForRendering")
    let valueReturnedFromMethod: JSValue = methodToBeCalled.callWithArguments([stream])
    println("valueReturnedFromMethod \(valueReturnedFromMethod.toObject())")

stream ”是我需要传递的对象。 虽然传递字符串没有错误,但是当我传递流对象时出现以下错误:

NSForwarding:警告:类'SwiftObject'的对象0x100f6f5e0未实现methodSignatureForSelector:-提前发生问题无法识别的选择器+ [SwiftObject copyWithZone:]

帮帮我...

我认为原因是因为stream需要是NSObject的子类,或者它需要是自动桥接到Objective C对象的类的实例。

请查看本文以获取更多详细信息。 String的作品,因为String自动桥接NSString

从Swift数组桥接到NSArray对象时,Swift数组中的元素必须与AnyObject兼容。 例如,[Int]类型的Swift数组包含Int结构元素。 Int类型不是类的实例,但是因为Int类型桥接到NSNumber类,所以Int类型与AnyObject兼容。 因此,您可以将[Int]类型的Swift数组桥接到NSArray对象。 如果Swift数组中的元素与AnyObject不兼容,则桥接到NSArray对象时会发生运行时错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM