Runtime

最近时间相对充足一些,正好这时候把最近一年左右的项目笔记给整理,并依次发布出来。

1 类别绑定属性

runtime01.png

问题:

如上图所示,项目中在这个页面是个自定义cell,但是每个cell中有个Switch按钮,点击之后,需要根据当前cell的数据进行后续的一些操作。
ps:这个应该是在开发中最经常遇到的一个小问题了,可以通过找superview的方式,一步一步找到当前Switch所在的cell,然后进行处理。
但是这时候就可以运用runtime进行给Switch类动态添加一个属性,可以很方便的处理好。
新建一个Switch的category文件 .h文件声明一个属性
@property (nonatomic,strong) id indexRow;
接着在.m文件中实现set get两个方法
并且需要定义一个key
static char IndexRowKey;
- (void)setIndexRow:(id)indexRow
{ /** @param object#> 绑定的对象 一般都是self @param key#> 用于存取值 即绑定的这个对象 @param value#> 关联对象的值 这个是需要传入id类型的,若不是 需要@()转换一下 @param policy#> 关联对策 */ return objc_setAssociatedObject(self, &IndexRowKey, indexRow, OBJC_ASSOCIATION_RETAIN_NONATOMIC); }

- (id)indexRow
{ return objc_getAssociatedObject(self, &IndexRowKey); }

2 动态添加方法

运用给类别绑定一个属性,在开发中,我们可以给UIView添加一个宽或高的属性,开发中就不需要多次打点.才能拿到对应的宽高值。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本文详细整理了 Cocoa 的 Runtime 系统的知识,它使得 Objective-C 如虎添翼,具备了灵活的...
    lylaut阅读 840评论 0 4
  • 转载:http://yulingtianxia.com/blog/2014/11/05/objective-c-r...
    F麦子阅读 787评论 0 2
  • 本文转载自:http://yulingtianxia.com/blog/2014/11/05/objective-...
    ant_flex阅读 817评论 0 1
  • 参考链接: http://www.cnblogs.com/ioshe/p/5489086.html 简介 Runt...
    乐乐的简书阅读 2,188评论 0 9
  • 前言 runtime其实在我们日常开发过程中很少使用到,尤其是像我现在比较初级的程序猿就更用不到了。但是去面试很多...
    WolfTin阅读 697评论 0 2