#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@interface Student : NSObject
@property(nonatomic,strong)NSString *name;
@property(nonatomic,strong)NSData *data;
@property(nonatomic,assign)CGFloat score;
@property(nonatomic,assign)double weight;
@property(nonatomic,assign)BOOL isMarried;
@property(nonatomic,assign)NSInteger age;
@property(nonatomic,strong)UIView *view;
@property(nonatomic,assign)long long height;
@property(nonatomic,assign)NSUInteger h;
@property(nonatomic,strong)NSDictionary *dictionry;
@property(nonatomic,strong)NSMutableArray *array;
+ (NSDictionary *)classIvarNameType;
@end
NS_ASSUME_NONNULL_END
+ (NSDictionary *)classIvarNameType{
unsigned int outCount = 0;
Ivar *varList = class_copyIvarList(self, &outCount);
NSMutableDictionary *nameTypeDic = [NSMutableDictionary dictionary];
for (int i = 0; i < outCount; i++) {
Ivar ivar = varList[I];
// 1. 获取成员变量名称
NSString *ivarName = [NSString stringWithUTF8String: ivar_getName(ivar)];
if ([ivarName hasPrefix:@"_"]) {
ivarName = [ivarName substringFromIndex:1];
}
// 2. 获取成员变量类型
NSString *type = [NSString stringWithUTF8String:ivar_getTypeEncoding(ivar)];
type = [type stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"@\"”]];
[nameTypeDic setValue:type forKey:ivarName];
}
NSLog(@"%@",nameTypeDic);
return nameTypeDic;
}
@end
{
age = q;
array = NSMutableArray;
data = NSData;
dictionry = NSDictionary;
h = Q;
height = q;
isMarried = B;
name = NSString;
score = d;
view = UIView;
weight = d;
}

网友评论