YYModel icon indicating copy to clipboard operation
YYModel copied to clipboard

Model 为什么不支持实例变量呢?目前看到源码只支持属性 @property

Open vinnyxiong opened this issue 8 years ago • 1 comments

@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 啊,应该来说也是可以支持的吧。作者不支持这个应该是有什么考虑吧,想知道一下。

vinnyxiong avatar Feb 10 '17 11:02 vinnyxiong

目前设计逻辑是:只通过公开的接口(例如 property 的 getter 和 setter)来进行属性设置,不影响原有逻辑。

这个以后会考虑作修改的。

ibireme avatar Aug 06 '17 16:08 ibireme