黑马程序员技术交流社区

标题: 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