全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

详解IOS 单例的两种方式

详解IOS 单例的两种方式

方法一:

#pragma mark - 
#pragma mark sharedSingleton methods 
 
//单例函数 
static RtDataModel *sharedSingletonManager = nil; 
 
+ (RtDataModel *)sharedManager 
{ 
  @synchronized(self) { 
    if (sharedSingletonManager == nil) { 
      sharedSingletonManager = [[self alloc] init]; 
    } 
  } 
  return sharedSingletonManager; 
} 
 
+ (id)allocWithZone:(NSZone *)zone 
{ 
  @synchronized(self) { 
    if (sharedSingletonManager == nil) { 
      sharedSingletonManager = [super allocWithZone:zone]; 
      return sharedSingletonManager; // assignment and return on first allocation 
    } 
  } 
  return nil; //on subsequent allocation attempts return nil 
} 
 
- (id)copyWithZone:(NSZone *)zone 
{ 
  return sharedSingletonManager; 
} 
 
- (id)retain 
{ 
  return sharedSingletonManager; 
} 
 
- (NSUInteger)retainCount 
{ 
  return UINT_MAX; //denotes an object that cannot be released 
} 
 
- (oneway void)release 
{ 
  //do nothing 
} 
 
- (id)autorelease 
{ 
  return sharedSingletonManager; 
} 
 
//单例函数结束 

方法二:

.h文件

#import <Foundation/Foundation.h> 
 
@interface RtTestDataModel : NSObject 
{ 
  NSMutableArray      * _buyDataTArray; 
  NSMutableArray      * _sellDataTArray; 
} 
 
+ (RtTestDataModel *)sharedManager; 
 
- (void)addOptionBuyDataArrayModel: (NSMutableArray *)DataArray; 
- (NSMutableArray *)getOptionBuyDataArrayModel; 
 
@end 

.m文件

#import "RtTestDataModel.h" 
 
@implementation RtTestDataModel 
 
+ (RtTestDataModel *)sharedManager 
{ 
  static RtTestDataModel *sharedManager = nil; 
  static dispatch_once_t predicate; 
   
  dispatch_once(&predicate,^{ 
    sharedManager = [[RtTestDataModel alloc]init]; 
  }); 
 
  return sharedManager; 
} 
 
- (void)dealloc 
{ 
  [_buyDataTArray removeAllObjects]; 
  [_buyDataTArray release]; 
   
  [super dealloc]; 
} 
 
- (id)init 
{ 
  self = [super init]; 
   
  if (self != nil) { 
    _buyDataTArray = [[NSMutableArray alloc] initWithCapacity:8]; 
  } 
  return self; 
} 
 
- (void)addOptionBuyDataArrayModel: (NSMutableArray *)DataArray{ 
   
  if (DataArray != nil) { 
     
    [_buyDataTArray removeAllObjects]; 
    [_buyDataTArray addObjectsFromArray:DataArray]; 
  } 
} 
 
- (NSMutableArray *)getOptionBuyDataArrayModel{ 
   
  return _buyDataTArray; 
} 
@end 


如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# IOS  # 单例  # 单例模式  # 单例的实现方法  # iOS单例的创建与销毁示例  # IOS Swift3 四种单例模式详解及实例  # 使用设计模式中的Singleton单例模式来开发iOS应用程序  # iOS App开发中使用设计模式中的单例模式的实例解析  # IOS 中两种单例模式的写法实例详解  # 谈一谈iOS单例模式  # iOS开发教程之单例使用问题详析  # 如有  # 两种  # 希望能  # 谢谢大家  # 疑问请  # allocWithZone  # zone  # NSZone  # id  # alloc  # init  # return  # super  # copyWithZone  # retain  # NSUInteger  # attempts  # assignment  # allocation  # subsequent 


相关文章: 深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?  制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?  如何配置FTP站点权限与安全设置?  如何基于PHP生成高效IDC网络公司建站源码?  如何通过宝塔面板实现本地网站访问?  网站app免费制作软件,能免费看各大网站视频的手机app?  制作网站的过程怎么写,用凡科建站如何制作自己的网站?  广州商城建站系统开发成本与周期如何控制?  相册网站制作软件,图片上的网址怎么复制?  高防服务器如何保障网站安全无虞?  如何选择高效响应式自助建站源码系统?  大连网站制作公司哪家好一点,大连买房网站哪个好?  小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?  ui设计制作网站有哪些,手机UI设计网址吗?  c++怎么实现高并发下的无锁队列_c++ std::atomic原子变量与CAS操作【详解】  如何选择适配移动端的WAP自助建站平台?  昆明高端网站制作公司,昆明公租房申请网上登录入口?  英语简历制作免费网站推荐,如何将简历翻译成英文?  如何在企业微信快速生成手机电脑官网?  如何通过虚拟主机快速搭建个人网站?  怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?  建站之星代理如何获取技术支持?  如何快速搭建高效WAP手机网站?  制作网页的网站有哪些,电脑上怎么做网页?  网站制作与设计教程,如何制作一个企业网站,建设网站的基本步骤有哪些?  如何生成腾讯云建站专用兑换码?  如何正确选择百度移动适配建站域名?  哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?  东莞专业网站制作公司有哪些,东莞招聘网站哪个好?  如何选择适合PHP云建站的开源框架?  网站制作价目表怎么做,珍爱网婚介费用多少?  如何零成本快速生成个人自助网站?  沈阳制作网站公司排名,沈阳装饰协会官方网站?  香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧  如何高效利用亚马逊云主机搭建企业网站?  网站网页制作电话怎么打,怎样安装和使用钉钉软件免费打电话?  早安海报制作网站推荐大全,企业早安海报怎么每天更换?  网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?  电影网站制作价格表,那些提供免费电影的网站,他们是怎么盈利的?  如何制作算命网站,怎么注册算命网站?  完全自定义免费建站平台:主题模板在线生成一站式服务  网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?  制作企业网站建设方案,怎样建设一个公司网站?  如何选择高效便捷的WAP商城建站系统?  邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?  广州美橙建站如何快速搭建多端合一网站?  如何通过VPS建站实现广告与增值服务盈利?  建站主机如何选?性能与价格怎样平衡?  网站制作难吗安全吗,做一个网站需要多久时间?  C++ static_cast和dynamic_cast区别_C++静态转换与动态类型安全转换 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。