美文网首页
iOS-关联对象

iOS-关联对象

作者: 黑酒一 | 来源:发表于2017-04-27 11:14 被阅读0次
以UIAlertView为例,在创建时,对事件进行处理。
  • objc_setAssociatedObject 此方法以给定的键和策略为某对象设置关联对象值
  • objc_getAssociatedObject 此方法根据给定的键从某对象中获取相应的关联对象值
  • objc_removeAssociatedObjects 此方法移除指定对象的全部关联对象
// 设置关联对象时,通常使用静态全局变量做键。
static void * EOCMyAiertViewKey = "EOCMyAiertViewKey";

UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@"Question" message:@"What do you want to do?" delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"Continue", nil];

void(^ block)(NSInteger) = ^(NSInteger buttonIndex) {
    
    // 在这里判断ButtonIndex 做相应处理
};

objc_setAssociatedObject(alert, EOCMyAiertViewKey, block, OBJC_ASSOCIATION_COPY);

[alert show];

#pragma mark - alertViewDelegate
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
    
    void(^ block)(NSInteger) = objc_getAssociatedObject(alertView, EOCMyAiertViewKey);
    block(buttonIndex);
}

相关文章

  • iOS-关联对象

    以UIAlertView为例,在创建时,对事件进行处理。 objc_setAssociatedObject 此方法...

  • iOS-关联对象

    initialize方法什么时候调用? 首先我们创建一个TPerson类: 然后我们在main函数中调用以下方法:...

  • ios-关联对象

    关联对象常见的一种做法 在分类里想增加属性,由于只会生成 set get方法,并不会存在 属性与成员 这个时候的做...

  • iOS-底层-关联对象

    前两篇文章我们学习了关于Category的知识Category分类和load和initialize,现在再看一个问...

  • iOS-关联对象技术

    为某个对象设置关联对象的值: 根据给定的键从某对象中获取相应的关联对象值: 移除指定对象的关联对象: 注:id v...

  • iOS-底层原理(7)-关联对象

    面试题 1. Category能否添加成员变量?如果可以,如何给Category添加成员变量? 不能直接给Cate...

  • iOS-浅谈OC中的关联对象

    目录 前言工作中遇到问题的思考---- 直接在分类添加成员变量---- 在分类中增加属性如何在分类中添加成员变量?...

  • Swift 为分类增加属性objc_getAssociated

    OC 获取关联对象 Swift 获取关联对象——错误的写法 Swift 获取关联对象——正确的写法 设置关联对象 ...

  • iOS runtime关联对象 objc_setAssociat

    关联对象的作用: 关联对象可以给某个对象关联一个或者多个其他对象,这些对象通过健来区分。 创建存储关联对象objc...

  • 关联对象

    关联对象的方式 关联对象源码基本思路 关联对象的结构:AssociationsHashManager // Ass...

网友评论

      本文标题:iOS-关联对象

      本文链接:https://www.haomeiwen.com/subject/xvugzttx.html