以下是我正在使用的课程:
Person.swift
import Foundationimport JavaScriptCore@objcprotocol PersonJavaScritMethod : JsExport { var testProperty : OuterClasspersonal.Personal? { get set } func sayHello(name1:String)}class Person : NSObject,PersonJavaScritMethod { var name : String! var testProperty:OuterClasspersonal.Personal? init(name:String) { testProperty = OuterClasspersonal.Personal() super.init() self.name = name } class func create(name : String) -> Person { return Person(name: name) } func sayHello(name1:String) { println("Hello \(name) \(name1)") }}
Personal.swift
import Foundationimport JavaScriptCore@objcprotocol PersonalJavaScritMethod : JsExport { func getNNN()}class OuterClasspersonal:NSObject,JsExport{ class Personal:NSObject,PersonalJavaScritMethod { func getNNN(){ println("Hip Hip Hurray") } }}
JavaScript.swift
import Foundationimport JavaScriptCoreclass JavaScript { let context = jscontext() func evaluateScript() { context.exceptionHandler = { context,exception in println("❌ Error in JavaScript: \(exception) "); } var p1:Person = Person(name: "Luitel") context.globalObject.setobject(p1,forKeyedSubscript: "Person1") context.evaluateScript("Person1.sayHello('sdf') \n ") var result = context.evaluateScript("Person1.testProperty.getNNN() \n") println("\(result.toString())") }}
当我运行evaluateScript()方法时,我在控制台中获得如下输出,
Hello Luitel sdf ❌ Error in JavaScript: TypeError: undefined is not a
function (evaluating ‘Person1.testProperty.getNNN()’)
undefined
我想访问个人类的方法getNNN().这里,如果getNNN()是OuterClasspersonal类的方法,而OuterClasspersonal实现PersonalJavaScriptMethod,则它可以正常工作.
问题是,如何从JavaScript访问内部类“Personal”的方法?
解决方法 似乎没有办法将内部类函数导出到JavaScript.我将内部类(Personal)移出并创建了独立的类,它起作用了. 总结以上是内存溢出为你收集整理的ios – 如何使用JSExport导出内部类的方法全部内容,希望文章能够帮你解决ios – 如何使用JSExport导出内部类的方法所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)