@property(class, nonatomic, assign) BOOL isFlag;
屬性中描述中有個(gè)class 。這個(gè)class 是干嘛的呢?
作用
給類增加一個(gè)屬性。(其實(shí)就是給類增加了一個(gè)setting 和getter方法,+方法,注意沒(méi)有生成實(shí)例變量)
測(cè)試代碼
#import <Foundation/Foundation.h>
@interface ClassProperty : NSObject
@property (class, nonatomic, assign, readonly) NSInteger userCount;
@property (class, nonatomic, copy) NSUUID *identifier;
+ (void)resetIdentifier;
@end
#import "ClassProperty.h"
static NSUUID *_identifier = nil;
static NSInteger _userCount = 0;
@implementation ClassProperty
- (instancetype)init
{
self = [super init];
if (self) {
_userCount += 1;
}
return self;
}
+ (NSInteger)userCount {
return _userCount;
}
+ (NSUUID *)identifier {
if (_identifier == nil) {
_identifier = [[NSUUID alloc] init];
}
return _identifier;
}
+ (void)setIdentifier:(NSUUID *)newIdentifier {
if (newIdentifier != _identifier) {
_identifier = [newIdentifier copy];
}
}
+ (void)resetIdentifier {
_identifier = [[NSUUID alloc] init];
}
@end
ClassProperty * obj = [ClassProperty new];
NSLog(@"%d",ClassProperty.userCount);
NSLog(@"%@",ClassProperty.identifier);
測(cè)試結(jié)果
2018-08-27 14:25:14.274852+0800 OriginCodeAnalytical[96276:4482776] 1
2018-08-27 14:25:14.275168+0800 OriginCodeAnalytical[96276:4482776] 544F9332-6CFC-43F6-93D6-ECB90A5D22AD
這個(gè)屬性,只是增加getting setting方法,我們需要自己添加靜態(tài)變量(權(quán)當(dāng)類成員變量)