从NSMutabledictionary中分离键和对象,并使用sqlite的insert命令中的值

时间:2011-04-15 13:19:05

标签: iphone insert sqlite nsmutabledictionary

大家好,我正在iphone中开发一个sqlite应用程序。 因为我是这个应用程序的新手,我不知道如何在sqlite的insert语句的命令中使用NSMutableDictionary中的键和对象。 例如,我想以下列格式使用insert语句。

插入TABLENAME(列名为NSMUTABLEDICTIONRY的键)值(作为来自NSMUTABLEDICTIONARY的对象的值) 请帮帮我。 感谢

3 个答案:

答案 0 :(得分:5)

我实际上对SQL知之甚少,但也许这样的事情可以帮到你:

NSDictionary *myDictionary = [NSDictionary dictionaryWithObjectsAndKeys:
                              @"Foo", @"Bar",
                              @"Foz", @"Baz",
                              nil];

NSMutableString *keys = [NSMutableString string];
NSMutableString *values = [NSMutableString string];
for (NSString *key in myDictionary) {
    [keys appendFormat:@"%@,", key];
    [values appendFormat:@"%@,", [myDictionary objectForKey:key]];
}
// remove last ,
[keys deleteCharactersInRange:NSMakeRange([keys length]-1, 1)];
[values deleteCharactersInRange:NSMakeRange([values length]-1, 1)]; 
NSString *sqlQuery = [NSString stringWithFormat:@"INSERT INTO TABLENAME %@ VALUES %@", keys, values];

// sqlQuery = INSERT INTO TABLENAME Bar,Baz VALUES Foo,Foz

答案 1 :(得分:0)

NSArray *keys = [dictionary allKeys];
NSMutableArray *values = [NSMutableArray array];
for (id k in keys)
    [values addObject:[dictionary objectForKey:k]];

答案 2 :(得分:0)

您可以使用快速枚举来遍历字典:

NSDictionary *abc;
for (NSString *key in abc) {
     NSObject *foo = [abc objectForKey:key];
}

有了它,构建你的陈述应该很容易。