• Objective-C传递数据小技巧


    转自: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。
    static char alertInfoKey;

    然后,在你alloc UIAlertView的地方调用objc_setAssociatedObject。如图。

    policy使用OBJC_ASSOCIATION_RETAIN,这样会自动retain你想传递的对象,也不用担心内存泄漏的问题,因为它会在alertView释放的时候自动release。

    接下来,你就可以在UIAlertView的delegate方法中获取传递的对象了。

    这个方法简单方便。越是简单,越易滥用,请酌情使用。

  • 相关阅读:
    Javascript中String()和new String()的区别——JS的包装对象
    文言色彩的客套话之感想
    面试时候可以问的问题集锦
    ES6的原始类型数据——Symbol
    python
    python
    python
    python
    python
    python
  • 原文地址:https://www.cnblogs.com/dokaygang128/p/3889758.html
Copyright © 2020-2023  润新知