另外的一种方式dispatch_once_t(好像需要在arc的项目中使用) ,文章参考地址:http://bj007.blog.51cto.com/1701577/649413
.h文件:
#import <Foundation/Foundation.h>
@interface UserInfoShare : NSObject
@property(nonatomic,strong) NSString *uname;
@property(nonatomic,strong) NSString *uid;
@property(nonatomic,strong) NSString *uphone;
+(UserInfoShare*)userinfoshare;
-(void) clearUser;
@end
#import "UserInfoShare.h"
@implementation UserInfoShare
+(UserInfoShare*)userinfoshare
{
static UserInfoShare* user;
if (user==nil) {
user=[[UserInfoShare alloc] init];
}
return user;
}
-(void)clearUser
{
_uname=nil;
}
@end
使用dispatch_once_t的方式:
+(userinfoshare*)userinfoshare改成:
+(UserInfoShare*)userinfoshare
{
static UserInfoShare* user;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
user=[[self alloc] init];
});
return user;
}
再xcode中打出dispatch_once可以直接进行代码补全。
对于性能的区别的可以打断点的试下是否执行的区别。