В первый раз вы нажимаете myPromise
на myList
, пока оно еще не определено.
Вы можете исправить это, полностью исключив переменную myPromise
.
var myList = [];
for (let i = 1; i <= 20; i++) {
myList.push(new Promise(function(resolve, reject) {
resolve("ITEM " + i);
}))
}
или подталкивание к myList
впоследствии.
for (let i = 1; i <= 20; i++) {
var myPromise = new Promise(function(resolve, reject) {
resolve("ITEM " + i);
})
myList.push(myPromise);
}
Одна опция (и обычно предпочитаемый при работе в SQL) состоит в том, чтобы записать изображение в файл в системе и сохранить путь (или некоторый другой вид идентификатора) в базе данных.
Необходимо будет преобразовать UIImage, размещенный в UIImageView в двоичный BLOB для устройства хранения данных в SQLite. Чтобы сделать это, можно использовать следующее:
NSData *dataForImage = UIImagePNGRepresentation(cachedImage);
sqlite3_bind_blob(yourSavingSQLStatement, 2, [dataForImage bytes], [dataForImage length], SQLITE_TRANSIENT);
Это генерирует представление PNG Вашего изображения, сохранит его в экземпляре NSData и затем свяжет байты от NSData как BLOB для второго аргумента в Вашем SQL-запросе. Используйте UIImageJPEGRepresentation в вышеупомянутом для хранения в том формате, если Вам нравится. Необходимо будет добавить столбец BLOB к соответствующей таблице в базе данных SQLite.
Для получения этого изображения можно использовать следующее:
NSData *dataForCachedImage = [[NSData alloc] initWithBytes:sqlite3_column_blob(yourLoadingSQLStatement, 2) length: sqlite3_column_bytes(yourLoadingSQLStatement, 2)];
self.cachedImage = [UIImage imageWithData:dataForCachedImage];
[dataForCachedImage release];
Запись изображения в БД SQLite
if(myImage != nil){
NSData *imgData = UIImagePNGRepresentation(myImage);
sqlite3_bind_blob(update_stmtement, 6, [imgData bytes], [imgData length], NULL);
}
else {
sqlite3_bind_blob(update_stmtement, 6, nil, -1, NULL);
}
Чтение из БД SQLite:
NSData *data = [[NSData alloc] initWithBytes:sqlite3_column_blob(init_statement, 6) length:sqlite3_column_bytes(init_statement, 6)];
if(data == nil)
NSLog(@"No image found.");
else
self.pictureImage = [UIImage imageWithData:data];