ios – Swift闭包为AnyObject

ios – Swift闭包为AnyObject,第1张

概述我试图使用这个方法:class_addMethod()在Obj-c中使用像这样: class_addMethod([self class], @selector(eventHandler), imp_implementationWithBlock(handler), "v@:"); 而且我在Swift中使用它: class_addMethod(NSClassFromString("UIBarBut 我试图使用这个方法:class_addMethod()在Obj-c中使用像这样:
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 ()->() into AnyObject ?

警告:此回答包括Swift中的无证件和不安全功能.我怀疑这通过AppStore审查.

let f: ()->() = {    println("test")}let imp = imp_implementationWithBlock(    unsafeBitCast(        f as @objc_block ()->(),AnyObject.self    ))
总结

以上是内存溢出为你收集整理的ios – Swift闭包为AnyObject全部内容,希望文章能够帮你解决ios – Swift闭包为AnyObject所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1097345.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存