class_addMethod([self class],@selector(eventHandler),imp_implementationWithBlock(handler),"v@:");
而且我在Swift中使用它:
class_addMethod(NSClassFromString("UIbarbuttonItem"),"handler","v@:")
它是UIbarbuttonItem的扩展,因为你可能已经想到了.
imp_implementationWithBlock采用AnyObject类型的参数!
如何将() – >()转换为AnyObject?
我试图将它转换为:处理程序为AnyObject,但它给我一个错误说:() – >()不符合协议’AnyObject’
解决方法How can I cast
()->()
intoAnyObject
?
警告:此回答包括Swift中的无证件和不安全功能.我怀疑这通过AppStore审查.
let f: ()->() = { println("test")}let imp = imp_implementationWithBlock( unsafeBitCast( f as @objc_block ()->(),AnyObject.self ))总结
以上是内存溢出为你收集整理的ios – Swift闭包为AnyObject全部内容,希望文章能够帮你解决ios – Swift闭包为AnyObject所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)