代理传值:
https://www.cnblogs.com/wangyaoguo/p/4874452.html
单例模式(相当于创建了一个全局对象(变量))
单例:只有一个对象。对象在程序运行期间空间一直存在,
为了保证只有一个对象,我们使用静态变量存储对象的地址,如果指针变量为空,则创建对象否则直接将对象的原有地址返回,但是只alloc 不release,所以造成内存泄露问题。单例模式主要用来解决特定问题,一般不会使用过多的单例类
pragma 单例传值1. 创建单例类
单例模板
新建一个类,继承于 NSObject
@interface single : NSObject
- 1
pragma 单例传值2. 添加一个单例方法
+(single *)Singletion;
实现部分
static single *singletion = nil;
+ (single *)Singletion {
//多线程下安全问题 加锁
@synchronized (self) {
if (!singletion ) {
singletion = [[single alloc] init];
}
return singletion;
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
自己添加想要传的值(可以跨界面)
pragma 单例传值3. 添加属性,存储传递的数据
//为该类添加一个属性,存储要传递的数据 ,在single(单例)中定义一个类似全局变量值
@property (nonatomic, retain) NSString *str;
UITextField tf1 = (UITextField )[self.view viewWithTag:111];
pragma 单例传值4 将要传递的数据存储到单例的属性中
single *obj = [single Singletion ];
obj.str = tf1.text;
- 1
- 2
- 3
pragma 单例传值5. 需要数据时,从单例对象的属性中取出
这里就是一个简单地举例
例 :label.text = [single Singletion].str;