#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);