objc_setAssociatedObject通过alert传值
来源:互联网 发布:易语言ui界面源码 编辑:程序博客网 时间:2024/06/07 00:36
转载请标明出处
欢迎交流
zltqzj@163.com
我是一个单线程妞~
#import "ViewController.h"#import <objc/runtime.h>static char alertInfoKey;@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad{ [super viewDidLoad]; NSString* dataYouWantToPass = @"some info"; UIAlertView* alert = [[UIAlertView alloc] initWithTitle:@"hello" message:@"miss-chalk" delegate:self cancelButtonTitle:@"cancel" otherButtonTitles:@"YES", nil]; [alert show]; objc_setAssociatedObject(alert, &alertInfoKey, dataYouWantToPass, OBJC_ASSOCIATION_RETAIN);// Do any additional setup after loading the view, typically from a nib.}- (void)didReceiveMemoryWarning{ [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated.}-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{ NSString* data = objc_getAssociatedObject(alertView, &alertInfoKey); NSLog(@"%@",data);}@end
运行结果:
2013-09-17 14:34:05.902 objc_setAssociatedObject--Test[2561:c07] some info
字符串与数组关联:
#import <Foundation/Foundation.h>#import <objc/runtime.h>int main(int argc, const char * argv[]){ @autoreleasepool { // insert code here... NSLog(@"Hello, World!"); static char overviewKey; NSArray *array =[[NSArray alloc] initWithObjects:@"One", @"Two", @"Three", nil]; //为了演示的目的,这里使用initWithFormat:来确保字符串可以被销毁 NSString * overview = [[NSString alloc] initWithFormat:@"%@",@"First three numbers"]; objc_setAssociatedObject(array, &overviewKey, overview, OBJC_ASSOCIATION_RETAIN); [overview release]; NSString *associatedObject = (NSString *)objc_getAssociatedObject(array, &overviewKey); NSLog(@"associatedObject:%@", associatedObject); objc_setAssociatedObject(array, &overviewKey, nil, OBJC_ASSOCIATION_ASSIGN); [array release]; } return 0;}
2013-09-17 15:32:31.773 objc_setAssociatedObject[2830:303] Hello, World!
2013-09-17 15:32:31.776 objc_setAssociatedObject[2830:303] associatedObject:First three numbers
借鉴:http://blog.csdn.net/zhangxingping/article/details/7619444?reload
不过,此博客代码少了个%,导致运行结果不同~~
- objc_setAssociatedObject通过alert传值
- objc_setAssociatedObject通过alert传值
- objc_setAssociatedObject通过alert传值
- objc_setAssociatedObject通过alert传值
- 通过 objc_setAssociatedObject alert 和 button关联 及传值
- 学习笔记:通过 objc_setAssociatedObject alert 和 button关联 及传值
- iOS开发-通过 objc_setAssociatedObject alert 和 button关联 及传值
- objc_setAssociatedObject
- objc_setAssociatedObject
- objc_setAssociatedObject
- objc_getAssociatedObject, objc_setAssociatedObject通过类目加属性
- Alert 中的字体通过css设置
- 通过外部表查看Alert日志
- 如何通过IAlertNotifyHandler来自定义Alert Email
- 通过alert日志重建参数文件
- 通过外部表方式访问alert文件
- J2EE后台response通过alert显示消息
- Objective-C 给类别添加属性(通过@dynamic和objc_setAssociatedObject实现)
- 使用Hadoop har归档历史文件(小文件)
- 富兰克林之十三美德
- Visual Studio 2012 Express 较好支持 C++11 新特性
- 2 kinds of scenarios in terms of HA failover behavior on Nexenta
- java中循环语句的理解
- objc_setAssociatedObject通过alert传值
- java面试中的多线程问题
- java 实现快速排序
- 关于struts.enable.DynamicMethodInvocation = true
- Oracle创建表语句(Create table)语法详解及示例
- 在触屏上使用CSS3为按钮实现激活效果
- 【福利!】Android SDK安装、更新速度慢,必须用VPN的简单解决方法
- Servlet first sight
- SQLServer2008基本数据库操作