黑马程序员技术交流社区
标题: OC语言 Person类的创建练习(笔记) [打印本页]
作者: 黑马公公007 时间: 2015-10-26 14:09
标题: OC语言 Person类的创建练习(笔记)
写一个Person类,要保证无论什么情况下创建Person对象返回的都是同一个对象
1) .h文件中
#import <Foundation/Foundation.h>
@interface Person : NSObject
+(Person *)shareddManager;
@property(nonatomic,retain)NSString *name;
@end
2) .m文件中
#import "Person.h"
@implementation Person
static Person *person=nil;
+(Person *)shareddManager
{
//单例需要使用dispatch_once_t线程
//这和dispatch_once配合使用能保证该第二个参数代码块中的代码只被执行一次
//如果被执行过不执行直接返回静态变量person,未执行过静态变量person=nil自然需要开辟空间并初始化
static dispatch_once_t once;
dispatch_once(&once,^{
person =[[self alloc]init];
});
return person;
}
@end
3)main.m函数中
#import <Foundation/Foundation.h>
#import"Person.h"
int main(int argc, const char * argv[]) {
@autoreleasepool {
Person *person1=[Person shareddManager];
Person *person2=[Person shareddManager];
NSLog(@"%p",person1);
NSLog(@"%p",person2);
}
return 0;
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |