ManagedMappingObject 0.2.1

ManagedMappingObject 0.2.1

测试测试通过
语言语言 Obj-CObjective C
许可证 MIT
发布日期上次发布2015年7月

azuakuraru维护。



  • 作者
  • azu和PlusR

NSManagedObject <-> NSDictionary(例如JSON模型类)

将NSManagedObject转换为NSDictionary(及反向转换)。

安装

pod 'ManagedMappingObject'

使用方法

1 设置NSManagedObject类。

可以使用mogenerator轻松生成。

mogenerator -m ManagedMappingObject.xcdatamodeld -O CoreDataModels \
    --base-class ManagedMappingObject \
    --template-var arc=true
  • 目标NSManagedObject类必须是ManagedMappingObject的子类。
  • 目标NSManagedObject类必须实现<ManagedMappingProtocol> .

2 如果需要转换值,则创建NSValueTransformer的子类。

  • UnitTransformer在示例中。
  • 实现<ManagedMappingProtocol>+ (NSDictionary *)JSONValueTransformerNames

例如:)

+ (NSDictionary *)JSONKeyMap {
    return @{
        UnitAttributes.identifier : @"id",
        UnitAttributes.date : @"unix_time",
        UnitAttributes.centimeter : @"meter"
    };
}

+ (NSDictionary *)JSONValueTransformerNames {
    return @{
        UnitAttributes.centimeter : NSStringFromClass([MeterToCentimeterTransformer class]),
        UnitAttributes.date : NSStringFromClass([UnixTimeToNSDateTransformer class])
    };
}

+ (NSString *)entityName {
    return [super entityName];
}

3 在设置后,您可以在NSManagedObject中使用以下方法。

// NSDictionary -> NSManagedObject
+ (instancetype)insertNewWithDictionary:(NSDictionary *) dictionary managedObjectContext:(NSManagedObjectContext *) context;
// update NSManagedObject
- (void)updateWithDictionary:(NSDictionary *) dictionary;
// NSManagedObject -> NSDictionary
- (NSDictionary *)dictionaryRepresentation;

注意:这些方法忽略了nil

示例

请参阅示例测试以获取详细信息。

额外:NSDictionary模型

原始NSDictionary很难处理,因此此示例项目使用JSON Accelerator

fooJSONModel类具有以下有用方法:

- (instancetype)initWithDictionary:(NSDictionary *)dict;
- (NSDictionary *)dictionaryRepresentation;

贡献

  1. 复制它!
  2. 创建您的功能分支:git checkout -b my-new-feature
  3. 提交您的更改:git commit -am '添加一些功能'
  4. 将分支推送到origin:git push origin my-new-feature
  5. 提交拉取请求:D

许可证

MIT

致谢

感谢@ishkawa