简单创建单例

    xiaoxiao2021-03-26  25

    常用写法 +(JYLion*)defaultLion { static JYLion *lion = nil; if (lion == nil) { //只有在第一次调用的时候创建对象 lion = [[JYLion alloc] init]; } return lion; } GCD创建单例 //单例对象。 +(MyUrlSession *)defaultSession{ static MyUrlSession * session=nil; static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ session=[[MyUrlSession alloc]init]; }); return session; } 非标准单例 static file *instance = nil; @implementation file // 获得单例的方法 @synchronized 的作用是创建一个互斥锁,保证此时没有其它线程对self对象进行修改。这个是objective-c的一个锁定令牌,防止self对象在同一时间内被其 它线程访问,起到线程的保护作用。 一般在公用变量的时候使用,如单例模式或者操作类的static变量中使用。 + (id)shareInstance { @synchronized(self) { if (instance == nil) { instance = [[file alloc] init]; } } return instance; }
    转载请注明原文地址: https://ju.6miu.com/read-660598.html

    最新回复(0)