博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
单例的使用总结
阅读量:6873 次
发布时间:2019-06-26

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

static RootViewController *sharedRootController = nil;

 
+(RootViewController *) sharedController{
    
@synchronized
(
self
){
        
if
(sharedRootController ==
nil
) {
            
sharedRootController = [[[
self
alloc] init] autorelease];
        
}
    
}
    
return
singleController;
}
+(
id
) allocWithZone:(
NSZone
*)zone{
    
@synchronized
(
self
){
        
if
(sharedRootController ==
nil
) {
            
sharedRootController = [
super
allocWithZone:zone];
            
return
sharedRootController;
        
}
    
}
    
return
nil
;
}
 
 
1. synchronized   这个主要是考虑多线程的程序,这个指令可以将{ } 内的代码限制在一个线程执行,如果某个线程没有执行完,其他的线程如果需要执行就得等着。
2、 allocWithZone 这个是重载的,因为这个是从制定的
内存区域读取信息创建实例,所以如果需要的
单例已经有了,就需要禁止修改当前
单例。所以返回 nil
3、 关于autorelease ,   iOS 上的程序,对于创建用于函数返回值的,都应该考虑 autorelease

转载地址:http://xfpfl.baihongyu.com/

你可能感兴趣的文章
PHP 依赖管理神器 Composer 基本使用
查看>>
sass进阶篇
查看>>
为项目配置logback日志
查看>>
另外一种C#多选下拉框
查看>>
伸展树的学习(七):伸展树常用的操作合集
查看>>
在Windows Server 2008 R2上安装 PowerShell 5.0
查看>>
Hyper-V 2016 系列教程32 StartWind 虚拟NFS,iSCSI软件
查看>>
高阶函数、柯里化及装饰器的使用
查看>>
redis 实验(七)监控和性能
查看>>
elasticsearch如何安全加固?
查看>>
AlwaysOn 同步提交模式是否会丢失数据?
查看>>
大数据学习贴(1)-环境搭建
查看>>
Windows Server入门系列32 利用SamInside获取系统密码Hash值
查看>>
juniper SRX vmware模拟器(能够出现可用网卡)
查看>>
WPF-15:AutoCompleteBox的使用(实现下拉列表)
查看>>
记录我所接触的python模块
查看>>
Windows Server2012域用户映射网络驱动器
查看>>
IBM X3650 M3服务器安装SUSE LINUX 10实战
查看>>
Word 2003中对不同的节设置不同的页面边框的特殊情况小结
查看>>
Android双机(网络和USB)调试及其完美ROOT
查看>>