//什么是单例? //单例就是单个实例对象,保证对象不管创建多少次,都是唯一一个 //UIScreen UIDevice NSFileManager NSUserDefaults /* 系统单例类: [UIScreen mainScreen] [UIdevice currentDevice] [NSFileManage defaultManager] [NSUserDefaults standardUserDefaults] */ #pragma mark ——————————单例类的使用意义—————————— 将第一个页面的值传到第三个页面,将后面的值传到前面 #pragma mark ——————————单例类的创建—————————— @interface Handler : NSObject //单例方法是类方法,返回值类型为instancetype //自己定义的单例类,方法名通常都以share开头 @property (nonatomic, copy)NSString *string; + (instancetype)shareInstance; @end static Handler *handler = nil; @implementation Handler //怎么保证单例对象是唯一的 + (instancetype)shareInstance{ @synchronized(self){//self这个对象是任意对象,加锁,保证创建过程在同一时间内只允许一个线程对象访问 if (handler == nil) { //单例不能释放,否则不能保证唯一 //且,多线程下,可能会被创建多次 handler = [[Handler alloc] init]; } } return handler; } @end #pragma mark ——————————单例的使用—————————— - (void)click{ //创建单例 Handler *handlder = [Handler shareInstance]; handlder.string = _textFiled.text; SecondViewController *second = [ [SecondViewController alloc] init]; [self.navigationController pushViewController:second animated:YES]; [second release]; } //创建单例 Handler *handlder = [Handler shareInstance]; label.text = handlder.string;
时间: 2024-10-11 06:43:24