如何在iOS Mantle模型子类中设置默认值

@interface Entity ()
  @property (assign) int searchTotalPagesAll;
  @property (assign) int searchTotalPagesIdeas;
@end


@implementation Entity
  + (NSDictionary *)JSONkeypathsByPropertyKey {
return @{
         @"Id": @"entity.id_entity",@"name": @"entity.name",@"coverage" : @"entity.coverage",@"id_city": @"entity.Id_City",@"cityName":@"entity.city",@"countryName":@"entity.country",@"stateName":@"entity.district",@"countryCode": @"entity.countrycode",@"keyword1": @"entity.key1",... etc

由于mantle示例没有init方法,我应该在哪里初始化这些属性(searchTotalPagesAll,searchTotalPagesIdeas)以获取认值?此模型具有需要此内容和其他几个属性的内部方法.

解决方法

无论您是使用JSON还是其他方式创建Mantle模型,都会使用 [-initWithDictionary:error:]初始化模型.在模型类中,您可以将认值添加到用于初始化模型的值:
- (instancetype)initWithDictionary:(NSDictionary *)dictionaryValue error:(NSError *__autoreleasing *)error {
    NSDictionary *defaults = @{
        @"searchTotalPagesAll" : @(10),@"searchTotalPagesIdeas" : @(5)
    };
    dictionaryValue = [defaults mtl_dictionaryByAddingEntriesFromDictionary:dictionaryValue];
    return [super initWithDictionary:dictionaryValue error:error];
}

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...