您可以通過創建一個具有三列的表(使用create table query)來完成此操作。然後將這些對象從您的字典插入這些列(使用插入查詢)。
編輯:將數據插入使用查詢:
NSString *query = [NSString stringWithFormat:@"insert into tablename (column1, column2,column3) values('%@','%@','%@')",[dic objectForKey:@"id"],[dic objectForKey:@"name"],[dic objectForKey:@"size"]];
NSLog(@"query : %@",query);
[self executeQuery:query];
在.H類做一個源碼實例:
sqlite3 *database; and import: #import<sqlite3.h>
在.M類作出補充這些方法:
-(NSString *) dataFilePath
{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSLog(@"PATH %@",[documentsDirectory stringByAppendingPathComponent:DatabaseName]);
return [documentsDirectory stringByAppendingPathComponent:DatabaseName];
}
/*==================================================================
METHOD FOR INSERTING DATA IN DATABASE
==================================================================*/
-(void)executeQuery:(NSString *)query
{
//NSLog(@"QUERY : %@",query);
sqlite3_stmt *statement;
if(sqlite3_open([[self dataFilePath] UTF8String], &database) == SQLITE_OK)
{
if (sqlite3_prepare_v2(database, [query UTF8String], -1, &statement, NULL) == SQLITE_OK)
{
if (sqlite3_step(statement) != SQLITE_DONE)
{
sqlite3_finalize(statement);
}
}
else
{
NSLog(@"query Statement Not Compiled");
}
sqlite3_finalize(statement);
sqlite3_close(database);
}
else
{
NSLog(@"Data not Opened");
}
}
對於閱讀數據:
/*==================================================================
METHOD FOR Fetching Data FROM DATABASE
==================================================================*/
NSString *query = [NSString stringWithFormat:@"select * from table_name"];
NSMutableArray *tableData = [self fetchingDataFromTable:query];
//這裏表數據數組包含所有記錄
-(NSMutableArray *)fetchingDataFromTable:(NSString *)query;
{
NSLog(@"QUERY : %@",query);
NSString *[email protected]"";
NSMutableArray *returnArray = [NSMutableArray new];
if(sqlite3_open([[self dataFilePath] UTF8String], &database) == SQLITE_OK)
{
sqlite3_stmt *statement;
if (sqlite3_prepare_v2(database, [query UTF8String], -1, &statement, nil)==SQLITE_OK)
{
while(sqlite3_step(statement)==SQLITE_ROW)
{
NSMutableDictionary *temp= [NSMutableDictionary new];
const char *s;
s=(char *)sqlite3_column_text(statement, 0);
if(s==NULL)
{
[email protected]"";
}
else
{
idToReturn =[NSString stringWithUTF8String:s];
}
[temp setObject:idToReturn forKey:@"id"];
s=(char *)sqlite3_column_text(statement, 1);
if(s==NULL)
{
[email protected]"";
}
else
{
idToReturn =[NSString stringWithUTF8String:s];
}
[temp setObject:idToReturn forKey:@"name"];
s=(char *)sqlite3_column_text(statement, 2);
if(s==NULL)
{
[email protected]"";
}
else
{
idToReturn =[NSString stringWithUTF8String:s];
}
[temp setObject:idToReturn forKey:@"size"];
if (temp != nil)
{
[returnArray addObject:temp];
temp = nil;
}
}
sqlite3_finalize(statement);
sqlite3_close(database);
}
}
return returnArray;
}
希望它可以幫助你。
您需要對字典進行編碼(可能是'JSON'或'plist')並將其存儲在數據庫中。 – dreamlax 2013-05-01 07:04:32
我的惡魔我可以將這個詞典編碼爲plist,但是如何將這個(plist)存儲在數據庫中? – estefan 2013-05-01 07:19:58