因此,我想知道是否可以通过块简单地创建满足委托协议(例如UIAlertVIEwDelegate)要求的匿名委托对象,并在需要委托引用的任何地方传递此匿名对象.
我想象的是:
ID myDelegate = @{ alertVIEw:alertVIEw dIDdismissWithbuttonIndex:index = ^ { ... }};UIAlertVIEw* alertVIEw = [[UIAlertVIEw alloc] initWithTitle:... message:... delegate:myDelegate cancelbuttonTitle:... otherbuttonTitles:...;[alertVIEw show];
我听说Objective-C有一些很好的动态语言功能,但我不知道如何简单地向对象添加方法/选择器.这可以以相对简单的方式完成吗?
解决方法 是的,你提到的语言功能是通过 objective-c runtime公开的,虽然没有动态创建委托类的内置工具,而运行时API并不是最友好的东西.有一个名为A2DynamicDelegate的图书馆,它正是您正在谈论的内容.我没有使用它,但它可能值得调查.
编辑:这种方法的一个问题是不保留委托,因此您需要在其他地方保留强引用,或者添加UIAlertVIEw的关联引用.您可能会发现所有这些大惊小怪都不值得,只需在视图控制器中添加额外的方法就可以更好地工作(您可以在类扩展中符合委托协议以避免污染您的界面).
总结以上是内存溢出为你收集整理的在Objective-C中创建匿名委托对象全部内容,希望文章能够帮你解决在Objective-C中创建匿名委托对象所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)