.h文件的代码实现
#import <Foundation/Foundation.h>
@interface AddressBook : NSObject
+ (id)shareInstance;
@property(nonatomic,copy)NSString *phoneNum;
@end
.m文件的代码实现
//* 单例的命名 mainScreen deflault.. shareInstance
static AddressBook *addressBook = nil; //GCD
@implementation AddressBook
+ (id)shareInstance {
if (addressBook == nil) {
addressBook = [[AddressBook alloc] init];
}
return addressBook;
}
//实现一些限制方法,限制这个类只能创建一个对象,单例对象不能被销毁
+ (id)allocWithZone:(struct _NSZone *)zone{
if (addressBook == nil) {
addressBook = [super allocWithZone:zone];
}
return addressBook;
}
//使对象不被销毁
- (oneway void)release OBJC_ARC_UNAVAILABLE{
//do nothing
}
- (id)copyWithZone:(NSZone *)zone{
//正常情况:在此方法中重新alloc一个对象返回
return self;
}
- (id)autorelease{
return self;
}
- (id)retain{
return self;
}
- (NSUInteger)retainCount{
return -1;
}
简单的使用单例