全网整合营销服务商

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

免费咨询热线: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 


相关文章: 建站之星安装失败:服务器环境不兼容?  如何在IIS管理器中快速创建并配置网站?  上海网站制作网站建设公司,建筑电工证网上查询系统入口?  建站一年半SEO优化实战指南:核心词挖掘与长尾流量提升策略  陕西网站制作公司有哪些,陕西凌云电器有限公司官网?  高防服务器:AI智能防御DDoS攻击与数据安全保障  如何快速搭建高效可靠的建站解决方案?  如何获取PHP WAP自助建站系统源码?  黑客入侵网站服务器的常见手法有哪些?  C++ static_cast和dynamic_cast区别_C++静态转换与动态类型安全转换  如何在阿里云购买域名并搭建网站?  如何快速建站并高效导出源代码?  高防服务器如何保障网站安全无虞?  如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?  南宁网站建设制作定制,南宁网站建设可以定制吗?  Android滚轮选择时间控件使用详解  Python多线程使用规范_线程安全解析【教程】  如何选择服务器才能高效搭建专属网站?  建站主机选购指南:核心配置优化与品牌推荐方案  小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?  网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?  如何配置支付宝与微信支付功能?  如何通过虚拟主机快速完成网站搭建?  建站之星安装步骤有哪些常见问题?  建站之星后台密码遗忘?如何快速找回?  网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?  常州企业网站制作公司,全国继续教育网怎么登录?  建站之星图片链接生成指南:自助建站与智能设计教程  建站主机选虚拟主机还是云服务器更好?  武汉网站制作费用多少,在武汉武昌,建面100平方左右的房子,想装暖气片,费用大概是多少啊?  建站之星伪静态规则如何正确配置?  单页制作网站有哪些,朋友给我发了一个单页网站,我应该怎么修改才能把他变成自己的呢,请求高手指点迷津?  rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted  建站之星后台密码遗忘或太弱?如何重置与强化?  手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?  极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?  建站之星如何实现网站加密操作?  赚钱网站制作软件,建一个网站怎样才能赚钱?是如何盈利的?  行程制作网站有哪些,第三方机票电子行程单怎么开?  建站之星如何助力网站排名飙升?揭秘高效技巧  官网网站制作腾讯审核要多久,联想路由器newifi官网  ppt在线制作免费网站推荐,有什么下载免费的ppt模板网站?  招商网站制作流程,网站招商广告语?  建站上市公司网站建设方案与SEO优化服务定制指南  高端建站三要素:定制模板、企业官网与响应式设计优化  小建面朝正北,A点实际方位是否存在偏差?  深圳网站制作费用多少钱,读秀,深圳文献港这样的网站很多只提供网上试读,但有些人只要提供试读的文章就能全篇下载,这个是怎么弄的?  c# 在ASP.NET Core中管理和取消后台任务  如何选择最佳自助建站系统?快速指南解析优劣  定制建站价位费用解析与套餐推荐全攻略 

您的项目需求

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