YYModel
YYModel copied to clipboard
Model 为什么不支持实例变量呢?目前看到源码只支持属性 @property
@interface VXTest : NSObject
{
uint8_t vinny1; // YYModel 没有对这个变量赋值!!!
}
@property (nonatomic, assign) BOOL vinny2;
@end
@implementation VXTest
@end
static void VinnyObjectExample() {
VXTest *vx = [VXTest modelWithJSON:@" \
{ \
\"vinny1\": 23, \
\"vinny2\": \"YES\", \
}"];
NSString *vxJSON = [vx modelToJSONString];
NSLog(@"VX: %@", vxJSON);
}
输出结果为(vinny1 这个变量丢失了):
VX: {"vinny2":true}
不支持变量的原因是什么呢?我看到 YYClassInfo 里面都解析了 Ivar 啊,应该来说也是可以支持的吧。作者不支持这个应该是有什么考虑吧,想知道一下。
目前设计逻辑是:只通过公开的接口(例如 property 的 getter 和 setter)来进行属性设置,不影响原有逻辑。
这个以后会考虑作修改的。