objc_setAssociatedObjec

转载 2015年07月09日 17:49:38

//唯一静态变量key

static const char associatedkey;

static const char associatedButtonkey;


- (IBAction)sendAlert:(UIButton*)sender

{

    

    NSString *message =@"我知道你是按钮了";

    

    UIAlertView *alert = [[UIAlertViewalloc]initWithTitle:@"提示"message:@"我要传值·" delegate:selfcancelButtonTitle:@"确定" otherButtonTitles:nil];

    alert.delegate =self;

    [alert show];


     //#import <objc/runtime.h>头文件

     //objc_setAssociatedObject需要四个参数:源对象,关键字,关联的对象和一个关联策略。


     //1 源对象alert

    //2 关键字 唯一静态变量key associatedkey

    //3 关联的对象 sender

    //4 关键策略  OBJC_ASSOCIATION_RETAIN_NONATOMIC

    

    

    objc_setAssociatedObject(alert, &associatedkey, message,OBJC_ASSOCIATION_RETAIN_NONATOMIC);

    

    objc_setAssociatedObject(alert, &associatedButtonkey, sender,OBJC_ASSOCIATION_RETAIN_NONATOMIC);

    

}

-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex

{

    

    

    //通过 objc_getAssociatedObject获取关联对象

    NSString  *messageString =objc_getAssociatedObject(alertView, &associatedkey);

    

    

    UIButton *sender = objc_getAssociatedObject(alertView, &associatedButtonkey);

    

    _labebutton.text = [[sendertitleLabel]text];

    _ThisLabel.text = messageString;

    

    

    //使用函数objc_removeAssociatedObjects可以断开所有关联。通常情况下不建议使用这个函数,因为他会断开所有关联。只有在需要把对象恢复到原始状态的时候才会使用这个函数。

}

相关文章推荐

iOS-OC-Runtime使用小谈(objc_setAssociatedObject)

一.objc/runtime.h 相关  Objecitve-C的重要特性是Runtime(运行时),在Interacting with the Runtime(交互运行)中,运行时函数部分,苹果...

objc iphone开发基础pdf

  • 2013-04-28 07:53
  • 43.23MB
  • 下载

objc.io 2.3 GCD常用方法 (转)

这篇文章里,我们将会讨论一些 iOS 和 OS X 都可以使用的底层 API。除了 dispatch_once ,我们一般不鼓励使用其中的任何一种技术。但是我们想要揭示出表面之下深层次的一些可利用的方...

objc学习笔记

  • 2015-03-26 09:42
  • 97KB
  • 下载

IOS-usr/include-objc-NSObject.h-ARC与非ARC

IOS-usr/include-objc-NSObject.h ARC与非ARC专题 1:     iOS5中,有个很吸引眼球的特性就是“Automatic Reference Co...

gcc-objc-3.4.5-20060117-3.tar.gz

  • 2009-11-07 17:37
  • 1.57MB
  • 下载

Hprose OBJC 使用说明

  • 2012-10-31 09:52
  • 1.54MB
  • 下载

ObjC如何通过runtime修改Ivar的内存管理方式(三)

第二次尝试到了这里,我们已经完全搞清楚了 oc 是如何管理assign和weak对象的了,如果你有兴趣也可以去自己尝试破解strong的实现机制,原理一样。接下来我们决定开始对 MCAssignToW...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)