I'm writing an iOS application using Swift 2.2 and I want to save profile picture of an account locally in a Realm database.
I tried from here and at last I have an imageView,two buttons. one button is for save image and another for show.In my imageView I have picked image from gallery and taken NSData and also tried to store it in Database but I can not retrieve it. Please suggest any procedure so that I will able to store an image and also to show it.
my Model is
class ImageModel:Object{
var photoData: NSData? = nil
}
and in my Image class I did
var imgData = NSData()
my image picker controller looks like below
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
if let pickedImage = info[UIImagePickerControllerOriginalImage] as? UIImage {
imageView.contentMode = .ScaleAspectFit
imageView.image = pickedImage
let imageData = UIImagePNGRepresentation(pickedImage)!
self.imgData = imageData
//print(imgData,"\n")
}
in my save button I did
let imgModel = ImageModel()
@IBAction func SaveImageToDB(sender: AnyObject) {
imgModel.photoData = self.imgData
print(imgModel.photoData)
try! moreUses.sharedInstance().realm.write{
try! moreUses.sharedInstance().realm.add(imgModel)
}
}
@IBAction func ShowImageFromDB(sender: AnyObject) {
let lists = moreUses.sharedInstance().realm.objects(ImageModel)
print(lists)
//let image : UIImage = UIImage(data: lists[0].photoData!)!
//print(image)
}
and my singleton class for realm object is
class moreUses{
var realm = try! Realm()
static var mrUser: moreUses!
class func sharedInstance() -> moreUses {
if mrUser != nil {
return self.mrUser
}
return moreUses();
}
init() {
}
}