static HLTestObject *instance = nil;
+ (instancetype)sharedInstance
{
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
instance = [[[self class] alloc] init];
instance.height = 10;
instance.object = [[NSObject alloc] init];
instance.arrayM = [[NSMutableArray alloc] init];
});
return
instance;
}
+ (instancetype)allocWithZone:(struct _NSZone *)zone
{
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
instance = [
super
allocWithZone:zone];
});
return
instance;
}
- (NSString *)description
{
NSString *result = @
""
;
result = [result stringByAppendingFormat:@
"<%@: %p>"
,[self class], self];
result = [result stringByAppendingFormat:@
" height = %d,"
,self.height];
result = [result stringByAppendingFormat:@
" arrayM = %p,"
,self.arrayM];
result = [result stringByAppendingFormat:@
" object = %p,"
,self.object];
return
result;
}
2016-05-23 13:29:14.856 PractiseProject[3909:99058] <hltestobject: 0x7fa72270c570>
height = 20, arrayM = 0x7fa722716c10, object = 0x7fa7227140e0,
2016-05-23 13:29:14.856 PractiseProject[3909:99058] <hltestobject: 0x7fa72270c570>
height = 20, arrayM = 0x7fa722716c10, object = 0x7fa7227140e0,
2016-05-23 13:29:14.856 PractiseProject[3909:99058]
<hltestobject: 0x7fa72270c570>
height = 20, arrayM = 0x7fa722716c10, object = 0x7fa7227140e0,
</hltestobject: 0x7fa72270c570>
</hltestobject: 0x7fa72270c570></hltestobject: 0x7fa72270c570>
或者:
static HLTestObject *instance = nil;
+ (instancetype)sharedInstance
{
return
[[self alloc] init];
}
- (instancetype)init
{
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
instance = [
super
init];
instance.height = 10;
instance.object = [[NSObject alloc] init];
instance.arrayM = [[NSMutableArray alloc] init];
});
return
instance;
}
+ (instancetype)allocWithZone:(struct _NSZone *)zone
{
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
instance = [
super
allocWithZone:zone];
});
return
instance;
}
- (NSString *)description
{
NSString *result = @
""
;
result = [result stringByAppendingFormat:@
"<%@: %p>"
,[self class], self];
result = [result stringByAppendingFormat:@
" height = %d,"
,self.height];
result = [result stringByAppendingFormat:@
" arrayM = %p,"
,self.arrayM];
result = [result stringByAppendingFormat:@
" object = %p,"
,self.object];
return
result;
}
2016-05-23 13:31:44.824 PractiseProject[3939:100662] <hltestobject: 0x7fa9da711a70>
height = 20, arrayM = 0x7fa9da707ca0, object = 0x7fa9da70a940,
2016-05-23 13:31:44.825 PractiseProject[3939:100662] <hltestobject: 0x7fa9da711a70>
height = 20, arrayM = 0x7fa9da707ca0, object = 0x7fa9da70a940,
2016-05-23 13:31:44.825 PractiseProject[3939:100662] <hltestobject: 0x7fa9da711a70>
height = 20, arrayM = 0x7fa9da707ca0, object = 0x7fa9da70a940,
</hltestobject: 0x7fa9da711a70></hltestobject: 0x7fa9da711a70>
</hltestobject: 0x7fa9da711a70>