在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
转自:http://www.guokr.com/blog/203413/
比如说,如果你想向UIAlertView的delegate方法中传递一些信息,怎么办?继承UIAlertView么?使用Category?都可以,其实还有一个更简单的办法,那就是使用objc_setAssociatedObject(id object, const void *key, id value, objc_AssociationPolicy policy)函数。这个函数定义在objc/runtime.h中。 首先,定义一个全局静态变量,用它的地址作为key。 然后,在你alloc UIAlertView的地方调用objc_setAssociatedObject。如图。 policy使用OBJC_ASSOCIATION_RETAIN,这样会自动retain你想传递的对象,也不用担心内存泄漏的问题,因为它会在alertView释放的时候自动release。 接下来,你就可以在UIAlertView的delegate方法中获取传递的对象了。 这个方法简单方便。越是简单,越易滥用,请酌情使用。 |
请发表评论