在SQLite中保存整个NSArray

时间:2014-02-23 14:36:02

标签: ios iphone objective-c sqlite nsarray

我想将整个数组保存到SQLite中。我正在获得一个包含许多其他数组的数组。 可能吗 ?如果是这样,请告诉我。

我试过这个 - 但“错误保存数据”

NSArray *array = [dict objectForKey:@"events_data"];
 sqlite3_stmt    *statement;

const char *dbpath = [databasePath UTF8String];

if (sqlite3_open(dbpath, &contactDB) == SQLITE_OK)
{
    NSString *insertSQL = [NSString stringWithFormat: @"INSERT INTO CONTACTS (event_array) VALUES (\"%@\")", array];

                           const char *insert_stmt = [insertSQL UTF8String];

                           sqlite3_prepare_v2(contactDB, insert_stmt, -1, &statement, NULL);
                           if (sqlite3_step(statement) == SQLITE_DONE)
                           {

                               NSLog(@"DATA SAVED TO DB");

                           } else {
                               NSLog(@"ERROR TO SAVE DATA");
                           }
                           sqlite3_finalize(statement);
                           sqlite3_close(contactDB);
                           }

如果有可能请告诉我如何检索它。

1 个答案:

答案 0 :(得分:0)

您需要not use sqlite directly in iOS。实际上,您应该将持久对象包装在NSManagedObject中。要检索对象,只需创建一个NSFetchRequest,设置其实体,然后让上下文执行它,这将返回NSArray NSManagedObject个标准,您可以迭代它们。希望这有所帮助,如果您有其他问题,请发表评论。