iphone - Deleting core data element at specific position. -
im new xcode , iphone application please bare me.
im trying delete selected core data element in table view when "edit" "delete" button pressed. can't seem though.
last method deleting should go. method being called when delete button pressed keep getting error "no visible @interface @ "webbrowser" declares selector "deleteobject"
here part of code.
#import "webtableviewcontroller2.h" #import "webbrowser.h" #import coredata/coredata.h #import "editviewcontroller.h" @interface webtableviewcontroller2 () @property uimanageddocument *webdocument; @property nsfetchedresultscontroller *resultscontroller; @end @implementation webtableviewcontroller2 - (id)initwithstyle:(uitableviewstyle)style { self = [super initwithstyle:style]; if (self) { // custom initialization } return self; } - (void)viewdidload { [super viewdidload]; nsstring *filename = [[nssearchpathfordirectoriesindomains(nsdocumentdirectory, nsuserdomainmask, yes) lastobject] stringbyappendingpathcomponent: @"webdb.db"]; nsurl *fileurl = [nsurl fileurlwithpath: filename]; self.webdocument = [[uimanageddocument alloc] initwithfileurl:fileurl]; if (![[nsfilemanager defaultmanager] fileexistsatpath:filename]) { [self.webdocument savetourl:fileurl forsaveoperation: uidocumentsaveforcreating completionhandler:^(bool success) { if(!success) nslog(@" database creation failed"); [self fetchdata]; }]; }else { [self.webdocument openwithcompletionhandler:^(bool success) { if(!success) nslog(@" database opening failed"); [self fetchdata]; }]; } } -(void)viewwillappear:(bool)animated { self.navigationitem.leftbarbuttonitem = self.editbuttonitem; } - (void) fetchdata { nsfetchrequest *request= [nsfetchrequest fetchrequestwithentityname: @"webbrowser"]; request.sortdescriptors = @[[nssortdescriptor sortdescriptorwithkey:@"name1" ascending:yes]]; self.resultscontroller = [[nsfetchedresultscontroller alloc] initwithfetchrequest:request managedobjectcontext: self.webdocument.managedobjectcontext sectionnamekeypath:nil cachename:nil]; self.resultscontroller.delegate = self; /* nserror *error = nil; nsuinteger count = [self.webdocument.managedobjectcontext countforfetchrequest:request error:&error]; //[request release]; nslog(@"this number in data base: %i", count); */ nserror *error = nil; if([self.resultscontroller performfetch: &error]){ [self.tableview reloaddata]; }else{ nslog(@"could not fetch data: %@, %@", error, error.userinfo); } } -(void) tableview:(uitableview *)tableview commiteditingstyle:(uitableviewcelleditingstyle)editingstyle forrowatindexpath:(nsindexpath *)indexpath { //deleting goes here nslog(@"deleting"); webbrowser *webbrowser = [self.resultscontroller objectatindexpath:indexpath]; [webbrowser deleteobjectat:indexpath.row]; }
[webbrowser deleteobjectat:indexpath.row];
should be
[context deleteobject:webbrowser];
where context
managed object context.
Comments
Post a Comment