我面临以下问题..
我有一个类 Menu.h 和 Item.h。菜单就像餐厅的菜单,有多个类别(如开胃菜、沙拉等),每个菜单都有多个关联的项目。所以 Menu.h 有一个名为 itemList 的 NSArray 属性。我正在尝试使用 Mantle 自动加载这些对象。
Menu.h
@interface Menu : MTLModel <MTLJSONSerializing>
@property (nonatomic) NSArray *itemList;
@end
和
Menu.m
@implementation Menu
+ (NSDictionary *)JSONKeyPathsByPropertyKey
{
// model_property_name : json_field_name
return @{
};
}
+ (NSValueTransformer *)itemListJSONTransformer {
return [NSValueTransformer mtl_JSONArrayTransformerWithModelClass: Item.class];
}
- (instancetype)initWithDictionary:(NSDictionary *)dictionaryValue error:(NSError **)error {
self = [super initWithDictionary:dictionaryValue error:error];
if (self == nil) return nil;
return self;
}
和
Item.m
- (instancetype)initWithDictionary:(NSDictionary *)dictionaryValue error:(NSError **)error {
self = [super initWithDictionary:dictionaryValue error:error];
if (self == nil) {
//DO SOMETHING WITH SELF AND RETURN A NON NIL OBJECT
return self;
}
return self;
}
我的问题如下:如果itemList为null,即来自服务器的null响应来自itemList,然后我想覆盖默认的initWithDictionary行为来做某事并从Item.h的构造函数返回一个非零对象怎么办我做吗?令我惊讶的是,代码没有到达这个构造函数,因为在形成 Menu.h 时它是空的。我确实也指定了 (NSValueTransformer)。任何线索?谢谢!