设计单例(简单)

来源:互联网 发布:2016宏观经济数据分析 编辑:程序博客网 时间:2024/05/17 09:13

.h文件的代码实现

#import <Foundation/Foundation.h>


@interface AddressBook :NSObject


+ (id)shareInstance;


@property(nonatomic,copy)NSString *phoneNum;


@end

.m文件的代码实现

//*  单例的命名 mainScreen  deflault..   shareInstance


staticAddressBook *addressBook = nil; //GCD


@implementation AddressBook


+ (id)shareInstance {

    

   if (addressBook ==nil) {

        

        addressBook =  [[AddressBookalloc] init];

        

    }


    

    

    returnaddressBook;

}


//实现一些限制方法,限制这个类只能创建一个对象,单例对象不能被销毁

+ (id)allocWithZone:(struct_NSZone *)zone{

    

   if (addressBook ==nil) {

        

        addressBook = [superallocWithZone:zone];

    }

    

    returnaddressBook;

    


}

//使对象不被销毁

- (onewayvoid)releaseOBJC_ARC_UNAVAILABLE{

    //do nothing


}


- (id)copyWithZone:(NSZone *)zone{


    //正常情况:在此方法中重新alloc一个对象返回

    return self;


}


- (id)autorelease{


    return self;

}


- (id)retain{

    

    return self;


}


- (NSUInteger)retainCount{


   return -1;

}

简单的使用单例


0 0
原创粉丝点击