011.Singleton 单例模式
2015-07-21 21:11
323 查看
---------------
main.m
---------------
#import
<Foundation/Foundation.h>
@interface
FKSingleton : NSObject
+ (id) instance; //
此方法可获取该类的位移实例对象
@end
@implementation
FKSingleton
static
id
instance =
nil;
+ (id) instance
{
if(!instance) //
如果instance全局变量为nil
{
//
创建一个Singleton实例,并将该实例赋给instance全局变量
instance = [[super
alloc] init];
}
return instance;
}
@end
int
main()
{
//
判断两次获取的实例是否相等,程序将会返回1(代表真)
NSLog(@"%d", [FKSingleton instance] == [FKSingleton instance]);
}
一、编写本节代码的具体步骤:
1.可仿照第二章001节的代码编写步骤,可以把类的接口文件,类的实现文件写在main.m文件中。
二、本节代码涉及到的知识点:
1.如果一个类只需要创建一个实例对象,(防止创建多个对象),那么我们可以使用static全局变量来实现。
2.如果一个类只能创建一个示例对象,那么这个类被称为“单例类”。
3.运行上面的代码,我们发现,两次产生的FKSingleton对象实际上是同一个对象。
main.m
---------------
#import
<Foundation/Foundation.h>
@interface
FKSingleton : NSObject
+ (id) instance; //
此方法可获取该类的位移实例对象
@end
@implementation
FKSingleton
static
id
instance =
nil;
+ (id) instance
{
if(!instance) //
如果instance全局变量为nil
{
//
创建一个Singleton实例,并将该实例赋给instance全局变量
instance = [[super
alloc] init];
}
return instance;
}
@end
int
main()
{
//
判断两次获取的实例是否相等,程序将会返回1(代表真)
NSLog(@"%d", [FKSingleton instance] == [FKSingleton instance]);
}
一、编写本节代码的具体步骤:
1.可仿照第二章001节的代码编写步骤,可以把类的接口文件,类的实现文件写在main.m文件中。
二、本节代码涉及到的知识点:
1.如果一个类只需要创建一个实例对象,(防止创建多个对象),那么我们可以使用static全局变量来实现。
2.如果一个类只能创建一个示例对象,那么这个类被称为“单例类”。
3.运行上面的代码,我们发现,两次产生的FKSingleton对象实际上是同一个对象。
相关文章推荐
- 012.private protect public 访问控制符
- Python中choice用法与三元操作
- ./configure报错mv: cannot move './confsjjYiM/out' to 'cmake/Makefile': Permission denied
- BZOJ 1303: [CQOI2009]中位数图( )
- android LinearLayout设置selector不起作用解决
- LeetCode学习笔记
- 50个强大的Python模块
- UVa 10623 - Thinking Backward (平面图的欧拉公式)
- 00-自测3. 数组元素循环右移问题 (20)
- UVA11426 GCD - Extreme (II) 小于n的数对的gcd之和
- LeetCode 7 Reverse Integer 这道题被血虐
- TCP三次握手详解!
- 杭电1860 统计字符
- scikit-learn:4.2. Feature extraction(特征提取,不是特征选择)
- ueditor使用注意事项
- Web前端开发基础 第四课(CSS小技巧)
- 点击UITableView的cell展开收缩
- 人教版九年级数学的“词汇”中英文对照表翻译bug
- Hadoop2.5.2+ubuntu14.04+eclispe+hadoop2x-eclipse-plugin-master搭建开发环境
- 00-自测2. 素数对猜想 (20)