Я создаю приложение iOS, в котором используется SQLite DB. Я создал таблицу Как:Код NSCocoaErrorDomain = 3840 при извлечении NSDATA в NSDictionary
const char *sql_stmt = "CREATE TABLE IF NOT EXISTS ORDERTABLE (ID INTEGER PRIMARY KEY AUTOINCREMENT, ITEMDESC BLOB)";
, а затем я должен вставить 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_prepare_v2(orderDB, sqlStatement, -1, &statement, NULL) == SQLITE_OK) {
while (sqlite3_step(statement) == SQLITE_ROW) {
int uniqueId = sqlite3_column_int(statement, 0);
const void *blob = sqlite3_column_blob(statement, 1);
NSInteger bytes = sqlite3_column_bytes(statement, 1);
NSData *data = [NSData dataWithBytes:blob length:bytes];
NSError *error;
NSMutableString *jsonObject=[NSJSONSerialization
JSONObjectWithData:data
options:NSJSONReadingMutableLeaves
error:&error];
NSLog(@"jsonObject is %@ with error %@",jsonObject, error);
}
sqlite3_finalize(statement);
sqlite3_close(orderDB);
}
И я получаю ошибку, как
Error Domain = NSCocoaErrorDomain Code = 3840 «Операция не может быть выполнена (ошибка Cocoa 3840.)» (текст JSON не начинался с массива или объекта и опции, позволяющей не создавать фрагменты.)
и мой NSDictionary, который я вставляю, как пример: po self.selectedItemsDictnory $ 1 = 0x07184170 { Свет = 50; Pasta = 220; } Я попытался найти эту ошибку. Я обнаружил, что мой JSON, который я получаю, на самом деле не в формате JSON. – Sulabh