/ / Reino se queja de 'Binario demasiado grande' - swift, xcode, uiimage, realm, nsdata

El reino se queja 'Binario demasiado grande' - swift, xcode, uiimage, realm, nsdata

Quiero guardar la imagen en Realm pero dice que el binario es demasiado grande. Sé que NSData debería tener menos de 16 MB. Entonces, ¿cómo puedo manejar este problema? De todos modos para cambiar el tamaño de NSData?

Respuestas

0 para la respuesta № 1

Puede hacer referencia a partes del archivo con NSFileHandle y es offsetInFile método. p.ej. en trozos de 16 MB.


0 para la respuesta № 2

También tuve el mismo problema, investigando solucioné mi error con la ayuda de Realm docs. Aqui esta el link. https://realm.io/docs/tutorials/scanner/#overview.

El fragmento de código útil:

 func data() -> Data {
var imageData = UIImagePNGRepresentation(self)
// Resize the image if it exceeds the 2MB API limit
if (imageData?.count)! > 2097152 {
let oldSize = self.size
let newSize = CGSize(width: 800, height: oldSize.height / oldSize.width *
800)
let newImage = self.resizeImage(self, size: newSize)
imageData = UIImageJPEGRepresentation(newImage, 0.7)
}
return imageData!
}

Para agregar a Realm, un código puede ser algo como esto:

     @IBOutlet weak var thumbImg: UIImageView!
let picture = Image()
let imageDownSizing = thumbImg.image?.data()

//thumbImg.image is of type UIImage type, so convert UIImage -> Data.
//picture.image is of type Data.
picture.image = UIImagePNGRepresentation(thumbImg.image!)
picture.image = imageDownSizing

let item = Item()
item.toImage = picture

do{
let realm = try! Realm()
try realm.write {
realm.add(item)
}
}catch{
print("Error saving context (error)")
}