代码之家  ›  专栏  ›  技术社区  ›  RickiG

是否有相反的“setValuesForMarkeysWithDictionary”—带有对象属性的MakeDictionary?

  •  14
  • RickiG  · 技术社区  · 14 年前

    我从一个Web服务解析一些JSON,这给了我一个nsdictionary,我使用这个dictionary来填充nsObject类型的valueEntity的属性

    [myObject setValuesForKeysWithDictionary:JSONDict];
    

    (MyObject与JSON解析器中的字典具有相同的属性名称和类型)

    name = name
    count = count
    startDate = startDate
    etc..
    

    有没有另一种方法,我有一个nsdictionary,我想用我的nsObject子类中的属性和它们的值“填充”。 就像我在标题中建议的那样,这一行的内容是:

    单程

    MyObject *myObject = [[MyObject alloc] init];
    [myObject setValuesForKeysWithDictionary:JSONDict];
    

    反过来说

    NSMutableDictionary *dict = [myObject makeDictionaryWithObjectProperties];
    

    这是因为我有一个ValueEntity,按照协议,我的视图都符合它,但是我也希望用这些值填充一个NSManagedObject。因此,我认为使用nsDictionary作为中间步骤,我可以绕过在nsManagedObject上执行一个类别,该类别根据我的对象子类nsObject上的值手动设置每个属性。

    有了字典,我可以去:

    [myManagedObject setValuesForKeysWithDictionary:dict];
    

    一旦我做了以上的工作,我就无法恢复字典的表示了?

    3 回复  |  直到 13 年前
        2
  •  5
  •   Yuji    14 年前

    NSManagedObject

    dictionaryWithValuesForKeys:

    makeDictionaryWithObjectProperties class_getPropertyList property_getName

    JSON setValuesForKeysWithDictionary:

    NSObject *myObject = [[NSObject alloc] init];
    [myObject setValuesForKeysWithDictionary:JSONDict];
    

    NSObject setValue:forKey: JSONDict

        3
  •  1
  •   Alex Zak    13 年前