ios - CoreData not saving -


this code:

import uikit import coredata  class photolist: uiviewcontroller, uitableviewdelegate, uitableviewdatasource, nsfetchedresultscontrollerdelegate {  override func viewdidload() {     super.viewdidload()      fetchedresultscontroller = nsfetchedresultscontroller(fetchrequest: fetchrequest(), managedobjectcontext: moc!, sectionnamekeypath: nil, cachename: nil)     fetchedresultscontroller?.delegate = self     fetchedresultscontroller?.performfetch(nil)      tableview.reloaddata() }  override func didreceivememorywarning() {     super.didreceivememorywarning() }   @iboutlet var tableview: uitableview! var whotookarray: [string] = [] var imagearray: [uiimage] = [] let moc:nsmanagedobjectcontext? = (uiapplication.sharedapplication().delegate as! appdelegate).managedobjectcontext var fetchedresultscontroller: nsfetchedresultscontroller? var whotookname: string = ""   func fetchrequest() -> nsfetchrequest {     var request = nsfetchrequest(entityname:"photolistentity")     let sortdescriptor = nssortdescriptor(key: "whotook", ascending: true)     request.predicate = nil     request.sortdescriptors = [sortdescriptor]     request.fetchbatchsize = 20     return request }  func tableview(tableview: uitableview, numberofrowsinsection section: int) -> int {     return fetchedresultscontroller?.sections?[section].numberofobjects ?? 0 }  func tableview(tableview: uitableview, cellforrowatindexpath indexpath: nsindexpath) -> uitableviewcell {     let cell = tableview.dequeuereusablecellwithidentifier("cell", forindexpath: indexpath) as! uitableviewcell     if let let whotookname = fetchedresultscontroller?.objectatindexpath(indexpath) as? photolistentity {         cell.textlabel?.text = whotookname.whotook     }     return cell }  //nsfetchedresultscontroller delegate functions  func controller(controller: nsfetchedresultscontroller, didchangesection sectioninfo: nsfetchedresultssectioninfo, atindex sectionindex: int, forchangetype type:nsfetchedresultschangetype) {      switch type {      case nsfetchedresultschangetype.insert:         tableview.insertsections(nsindexset(index: sectionindex), withrowanimation: uitableviewrowanimation.fade)         break      case nsfetchedresultschangetype.delete:         tableview.deletesections(nsindexset(index: sectionindex), withrowanimation: uitableviewrowanimation.fade)         break      case nsfetchedresultschangetype.move:         break      case nsfetchedresultschangetype.update:         break      default:         break     } }  func tableview(tableview: uitableview, commiteditingstyle editingstyle: uitableviewcelleditingstyle, forrowatindexpath indexpath: nsindexpath) {     if editingstyle == .delete {     }     switch editingstyle {     case .delete:         moc?.deleteobject(fetchedresultscontroller?.objectatindexpath(indexpath) as! photolistentity)     case .insert:         break     case .none:         break     } }  func controller(controller: nsfetchedresultscontroller, didchangeobject anobject: anyobject, atindexpath indexpath: nsindexpath?, forchangetype type: nsfetchedresultschangetype, newindexpath: nsindexpath?) {      switch type {     case nsfetchedresultschangetype.insert:         tableview.insertrowsatindexpaths(nsarray(object: newindexpath!) [anyobject], withrowanimation: uitableviewrowanimation.fade)         break      case nsfetchedresultschangetype.delete:         tableview.deleterowsatindexpaths(nsarray(object: newindexpath!) [anyobject], withrowanimation: .fade)         break      case nsfetchedresultschangetype.move:         tableview.deleterowsatindexpaths(nsarray(object: newindexpath!) [anyobject], withrowanimation: .fade)         break      case nsfetchedresultschangetype.update:         tableview.cellforrowatindexpath(indexpath!)         break      default:         break     } }  func controllerwillchangecontent(controller: nsfetchedresultscontroller) {     tableview.beginupdates() }  func controllerdidchangecontent(controller: nsfetchedresultscontroller) {     tableview.endupdates() }  } 

and

import uikit import coredata  protocol senddetailsdelegate {     func senddetails(name: string) }  class details: uiviewcontroller, uiimagepickercontrollerdelegate, uinavigationcontrollerdelegate, uitableviewdelegate, nsfetchedresultscontrollerdelegate {      override func viewdidload() {         super.viewdidload()          let tapgesturerecognizer: uitapgesturerecognizer = uitapgesturerecognizer(target: self, action: "chooseimage:")         tapgesturerecognizer.numberoftapsrequired = 1         imageselected.addgesturerecognizer(tapgesturerecognizer)         imageselected.userinteractionenabled = true     }      override func didreceivememorywarning() {         super.didreceivememorywarning()         // dispose of resources can recreated.     }       @iboutlet var whotooktextfield: uitextfield!     @iboutlet var imageselected: uiimageview!     let moc: nsmanagedobjectcontext = (uiapplication.sharedapplication().delegate as! appdelegate).managedobjectcontext!        //pick image tapping, accessing photolibrary     func chooseimage(recognizer: uitapgesturerecognizer) {         let imagepicker: uiimagepickercontroller = uiimagepickercontroller()         imagepicker.delegate = self         imagepicker.sourcetype = uiimagepickercontrollersourcetype.photolibrary         self.presentviewcontroller(imagepicker, animated: true, completion: nil)     }      //put selected image screen     func imagepickercontroller(picker: uiimagepickercontroller, didfinishpickingmediawithinfo info: [nsobject : anyobject]) {          let pickedimage: uiimage = (info nsdictionary).objectforkey(uiimagepickercontrolleroriginalimage) as! uiimage         let smallpicture = scaleimagewith(pickedimage, newsize: cgsizemake(288,148))         var sizeofimageview: cgrect = imageselected.frame         sizeofimageview.size = smallpicture.size         imageselected.frame = sizeofimageview         imageselected.image = smallpicture         picker.dismissviewcontrolleranimated(true, completion: nil)     }      func imagepickercontrollerdidcancel(picker: uiimagepickercontroller) {         picker.dismissviewcontrolleranimated(true, completion: nil)     }      func scaleimagewith(image: uiimage, newsize: cgsize) -> uiimage {         uigraphicsbeginimagecontextwithoptions(newsize, false, 0.0)         image.drawinrect(cgrectmake(0,0, newsize.width, newsize.height))         let newimage: uiimage = uigraphicsgetimagefromcurrentimagecontext()         uigraphicsendimagecontext()         return newimage     }       @ibaction func addbutton(sender: anyobject) {          if whotooktextfield == nil || imageselected == nil { return }         if imageselected == nil { return }          let entitydescription = nsentitydescription.entityforname("photolistentity", inmanagedobjectcontext: moc)         let name = nsmanagedobject(entity: entitydescription!, insertintomanagedobjectcontext: moc)         name.setvalue(whotooktextfield.text, forkey: "whotook")           if let navigation = self.navigationcontroller {             navigation.popviewcontrolleranimated(true)         }     } }    , coredata model:    import foundation import coredata  @objc(photolistentity) class photolistentity: nsmanagedobject {      @nsmanaged var whotook: string     @nsmanaged var relationship: photolistentity  } 

i'm new on this, i'm sorry anything. wish know why not being saved when close , open app again. thanks!!!!

answer posted! ideas! :d

add function:

func save() {         var appdel: appdelegate = (uiapplication.sharedapplication().delegate as! appdelegate)         var moc: nsmanagedobjectcontext = appdel.managedobjectcontext!         var whotook: anyobject! = nsentitydescription.insertnewobjectforentityforname("photolistentity", inmanagedobjectcontext: moc)         var error: nserror?         moc.save(nil)     } 

and call in addbutton! done! :d


Comments

Popular posts from this blog

c# - Validate object ID from GET to POST -

node.js - Custom Model Validator SailsJS -

php - Find a regex to take part of Email -