У меня возникли проблемы с хранением и извлечением массива изображений с помощью NSUserDefaults.Хранить и извлекать массив изображений
var MyStringArray: [String] = []
var MyImageArray: [UIImage] = []
//to store an array of strings
NSUserDefaults.standardUserDefaults().setObject(MyStringArray, forKey: "\(FriendFullname.text!) strings")
//to retrieve an array of strings
let tabledata = NSUserDefaults.standardUserDefaults().arrayForKey("\(identity.text!) strings")
MyStringArray = tabledata as! [String]
//to store an array of images
NSUserDefaults.standardUserDefaults().setObject(MyImageArray, forKey: "\(FriendFullname.text!) images")
//to retrieve an array of images
let tabledata2 = NSUserDefaults.standardUserDefaults().arrayForKey("\(identity.text!) images")
MyArray = tabledata as! [UIImage]
Сохранение строки отлично работает, однако Everytime я бегу код для хранения и извлечения изображений, сбои приложений.
Я считаю, что это может быть из-за неправильного способа сохранения изображений.
Я использую другой способ для хранения одиночных изображений:
// storing single images
let imageData = UIImageJPEGRepresentation(myImgVw.image!, 1)
let relativePath = "image_\(NSDate.timeIntervalSinceReferenceDate()).jpg"
let path = self.documentsPathForFileName(relativePath)
imageData.writeToFile(path, atomically: true)
NSUserDefaults.standardUserDefaults().setObject(relativePath, forKey: "path")
NSUserDefaults.standardUserDefaults().synchronize()
//retrieving single images
let possibleOldImagePath = NSUserDefaults.standardUserDefaults().objectForKey("path") as! String?
if let oldImagePath = possibleOldImagePath {
let oldFullPath = self.documentsPathForFileName(oldImagePath)
let oldImageData = NSData(contentsOfFile: oldFullPath)
// here is the saved image:
let oldImage = UIImage(data: oldImageData!)
}
// file path
func documentsPathForFileName(name: String) -> String {
let paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true);
let path = paths[0] as! String;
let fullPath = path.stringByAppendingPathComponent(name)
return fullPath
}
Так что мой вопрос, как я могу хранить массив изображений в переменную [UIImage] типа.
Это ошибка я получаю при попытке сохранить массив:
2015-05-09 16: 16: 02,864 Application [3310: 767507] Список недвижимости недопустимый для формата: 200 (списки свойств не может содержат объекты типа «CFType») 2015-05-09 16: 16: 02.866 Приложение [3310: 767507] Попытка установить объект не property-list ( ", {0, 0}" ) в качестве NSUserDefaults/CFPreferences для ключей Frank Rosenberg images 2015-05-09 16: 16: 02.870 Приложение [3310: 767507] * Завершение приложения из-за неперехваченного исключения «NSInvalidArgumentException», причина: «Попытка вставить не-пропе список RTY объект ( "{0, 0}" ) для * Первый стек броска Клавиша вызова Франк Розенберг образов: (0x18298c2d8 0x1941b80e4 0x18298c218 0x1829c6064 0x182918b24 0x182917b04 0x1829c6360 0x1829c58f8 0x1829c9188 0x1837b6960 0x10011ec00 0x10011ed00 0x187401404 0x1873ea4e0 0x187400da0 0x187400a2c 0x1873f9f68 0x1873cd18c 0x18766e324 0x1873cb6a0 0x182944240 0x1829434e4 0x182941594 0x18286d2d4 0x18c0836fc 0x187432fac 0x1000f3518 0x194836a08) LibC++ abi.dylib: оканчивающийся неперехваченного исключением типа NSException
Необходимо сообщить об ошибке сообщения об ошибке. – Mundi