0

我有一个 NSDictionary 值的数组,当 NSLogged 时看起来像这样

{
 HASMOD = F;
 ISLOCKED = F;
 ISREGD = F;
 MANU = "HORNET";
 ID = 706;
},
 {
 HASMOD = T;
 ISLOCKED = F;
 ISREGD = T;
 MANU = "BANJI";
 ID = 225;
},
//etc

我正在尝试将这些值保存到我的核心数据对象(使用正确的类型)。我一直在关注本教程,并且已经到了尝试将值插入每个对象的地步,但是我不确定如何从字典数组中执行此操作..因为它只显示了如何输入一个批次信息

所以我自己尝试过这样做......但它比任何东西都更像伪代码......这就是我所做的......希望它有助于理解我想要实现的目标。

// WRITE TO CORE DATA
    NSManagedObjectContext *context = [self managedObjectContext];
    Manuf *manuf = [NSEntityDescription insertNewObjectForEntityForName:@"Manuf" inManagedObjectContext:context];


    int mycount = [parsedDataArrayOfDictionaries count];

    while (mycount != 0) {

        // Somehow read Dictionaries and put them into their correct value types
        BOOL hasModBool;
        hasModelBool =

        BOOL isLockedBool;
        isLockedBool =

        BOOL isRegedBool;
        isRegedBool =

        NSString *manuString = [[NSString alloc] init];
        manuString =

        int manuIDInt;
        manuIDInt =


        // pass all the values into the manuf coredata obj
        manuf.hasMod = hasModBool;
        manuf.isLocked = isLockedBool;
        manuf.isReged = isRegedBool;
        manuf.manu = manuString;
        manuf.manuID = manuIDInt;

        count --; // itterate through the array
    }

我希望有人可以帮助我遍历字典数组并将它们插入到我的核心数据对象的变量中。

任何帮助将不胜感激。

4

1 回答 1

2

只需使用 for-in 循环遍历您的数组,并使用 valueForKey: 获取值。

for (NSDictionary *dict in parsedDataArrayOfDictionaries) {
     Manuf *manuf = [NSEntityDescription insertNewObjectForEntityForName:@"Manuf" inManagedObjectContext:context];
     BOOL hasModelBool;
     BOOL isLockedBool;
     BOOL isRegedBool;
     if([dict valueForKey:@"HASMOD"] isEqualToString:@"T"]) {
        hasModelBool = TRUE;
     }else{
        hasModelBool = FALSE;
     if([dict valueForKey:@"ISLOCKED"] isEqualToString:@"T"]) {
        isLockedBool = TRUE;
     }else{
        isLockedBool = FALSE;
     ......
     ......
     // pass all the values into the manuf coredata obj
    manuf.hasMod = hasModBool;
    manuf.isLocked = isLockedBool;
    manuf.isReged = isRegedBool;
    manuf.manu = manuString;
    manuf.manuID = manuIDInt;
}

我在这里假设字典中的“T”或“F”值是需要转换为 TRUE 或 FALSE 的字符串。

于 2012-09-27T00:38:16.957 回答