#import <Foundation/Foundation.h> @interface UserContext : NSObject <NSCopying> @property (nonatomic,copy) NSString *name; @property (nonatomic,copy) NSString *emial; +(id) shareUsercontext; @end
#import "UserContext.h"
static UserContext *segtonInstance=nil;
@implementation UserContext
+(id) shareUsercontext{
@synchronized(self){
if(segtonInstance==nil){
segtonInstance=[[[self class] alloc] init];
}
}
return segtonInstance;
}
+(id) allocWithZone:(struct _NSZone *)zone{
if (segtonInstance==nil) {
segtonInstance=[super allocWithZone:zone];
}
return segtonInstance;
}
- (id)copyWithZone:(NSZone *)zone{
return segtonInstance;
}
@end
/**单例模式***/
UserContext *usercontext=[UserContext shareUsercontext];
UserContext *usercontext2=[UserContext shareUsercontext];
UserContext *usercontext3=[[UserContext alloc] init];
UserContext *usercontext4=[usercontext copy];
NSLog(@"%p",usercontext);
NSLog(@"%p",usercontext2);
NSLog(@"%p",usercontext3);
NSLog(@"%p",usercontext4);
原文:http://www.cnblogs.com/clarence/p/3916739.html