博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS - 单例传值 (一)
阅读量:4697 次
发布时间:2019-06-09

本文共 1907 字,大约阅读时间需要 6 分钟。

单例只会对某个类实例化一次/单例类,对单例这个类实例化一次有且仅有一个对象

你单例初始化,只能初始化一次,然后你指向的对象,其实都是指向一个内存地址,也就是同一块内存,所以都是一样的/

so。。只能有一个对象,就是实例化的那个

(1)定义单例类singleton

 

#import 
@interface singleton : NSObject//@property (strong,nonatomic) UITextField *value;//最开始的时候把这个value定义为UITextField了,然后在init里面又没有初始化它,就取不到值。任何对象都要初始化它才能使用。@property (strong, nonatomic) NSString *value;//+(id)shareData:+(singleton *)shareData;@end

 

#import "singleton.h"@implementation singletonstatic singleton *singletonData = nil;+(singleton *)shareData {            static dispatch_once_t onceToken;        dispatch_once(&onceToken, ^{        singletonData = [[singleton alloc] init];    });      return singletonData;  }-(id)init {        if (self = [super init]) {       //        self.value = [[UITextField alloc]init];            }        return self;     }@end

(2) ViewController

 

 

#import 
#import "OneViewController.h"#import "singleton.h"@interface ViewController : UIViewController@property (weak, nonatomic) IBOutlet UITextField *qqTextfield;- (IBAction)go:(id)sender;@end

 

- (IBAction)go:(id)sender {   //单例的使用    singleton *oneS = [singleton shareData];//    oneS.value.text = self.qqTextfield.text;     oneS.value = self.qqTextfield.text;        OneViewController *oneVC = [[OneViewController alloc]init];    [self presentViewController:oneVC animated:YES completion:nil];      }

(3) OneViewController

 

 

#import 
#import "singleton.h"@interface OneViewController : UIViewController@property (weak, nonatomic) IBOutlet UITextField *oneTextField;@end

 

- (void)viewDidLoad{    [super viewDidLoad];    // Do any additional setup after loading the view from its nib.    self.oneTextField.text = [singleton shareData].value;    }

效果图:

 

从第一个view输入你的数据,点击go

----

在第二个view得到你输入的数据:

-----

源代码:

还可以看看: 

共享这个类的实例变量,而非属性,属性是通过这个实例变量去获取的。

-----共享这个类的实例变量。。嗯啊。。ones这个对象。。。然后ones。value这个属性去拿到值

 

转载于:https://www.cnblogs.com/riasky/p/3436022.html

你可能感兴趣的文章
MySQL优化索引及优化汉字模糊查询语句
查看>>
安装cocoaPod 的问题
查看>>
vs Obsolete标识符
查看>>
IOS 深拷贝和浅拷贝应用
查看>>
深度学习优化方法
查看>>
《剑指offer》第二十八题(对称的二叉树)
查看>>
解决编译错误: 非法字符: '\ufeff' 解决方案|错误: 需要class, interface或enum
查看>>
别说我不懂排序!几种常见排序算法(一)
查看>>
JAVA学习笔记-this隐式参数
查看>>
2017.05.01
查看>>
Oracle闪回技术
查看>>
Winform开发框架之通用高级查询模块--SNF快速开发平台3.3-Spring.Net.Framework
查看>>
kotlin项目开发基础之gradle初识
查看>>
poj_1458 LCS problem F.最长上升公共子序列
查看>>
重写方法,重载方法,虚方法和抽象方法的使用
查看>>
蓝牙协议栈中的 OSAL
查看>>
【Netty】EventLoop和线程模型
查看>>
打开一个页面,并监听该页面的关闭事件
查看>>
软件保护技术--- 常见保护技巧
查看>>
java内存模型之二volatile内存语义
查看>>