Я создаю приложение iOS
, в котором используется Sqlite DB. Я создал Table
как:Как восстановить NSdata в NSdictionary из Sqlite в iOS
const char *sql_stmt = "CREATE TABLE IF NOT EXISTS ORDERTABLE (ID INTEGER PRIMARY KEY AUTOINCREMENT, ITEMDESC TEXT)";
, а затем я должен вставить self.selectedItemsDictnory словарь в ItemDESC я вставив как:
NSData *data = [NSJSONSerialization dataWithJSONObject:self.selectedItemsDictnory options:NSJSONWritingPrettyPrinted error:nil];
NSString *insertSQL = [NSString stringWithFormat: @"INSERT INTO ORDERTABLE(ITEMDESC)VALUES(\"%@\");",data];
Upto этого успешно сделано.
Теперь я должен получить этот словарь в таком же формате
то, что я делаю это:
if (sqlite3_open(dbpath, &orderDB) == SQLITE_OK)
{
const char* sqlStatement = [[NSString stringWithFormat:@"SELECT * FROM ORDERTABLE WHERE (ID = '%d')",self.orderSelected]cStringUsingEncoding:NSUTF8StringEncoding];
sqlite3_stmt* statement;
if (sqlite3_prepare_v2(orderDB, sqlStatement, -1, &statement, NULL) == SQLITE_OK) {
if(sqlite3_step(statement) == SQLITE_ROW)
{
NSData *retData = (__bridge NSData*) sqlite3_column_value(statement, 1);
NSDictionary *jsonObject=[NSJSONSerialization
JSONObjectWithData:retData
options:NSJSONReadingMutableLeaves
error:nil];
NSLog(@"jsonObject is %@",jsonObject);
NSDictionary *dic = [NSDictionary dictionaryWithContentsOfData:retData];
NSLog(@"dic is %@",dic);
}
}
sqlite3_finalize(statement);
sqlite3_close(orderDB);
}
Но я получаю Bad Избыточный исключение. Пожалуйста, помогите мне в поиске данных
Можете ли вы указать точную строку, где вы получаете исключение? –
привет, я получаю исключение при NSDictionary * JSONObject = [NSJSONSerialization JSONObjectWithData: retData опции: NSJSONReadingMutableLeaves ошибка: ноль]; – Sulabh
is retData - это нуль? – karthik