ios - TableView keeps empty after using NSFetchedResultsController -
i've tried use nsfetchedresultscontroller in order display sections tableview. tableview keeps empty.
@property (nonatomic,strong) nsmanagedobjectcontext* managedobjectcontext; @property (nonatomic, retain) nsfetchedresultscontroller *fetchedresultscontroller; - (nsmanagedobjectcontext *)managedobjectcontext { nsmanagedobjectcontext *context = nil; id delegate = [[uiapplication sharedapplication] delegate]; if ([delegate performselector:@selector(managedobjectcontext)]) { context = [delegate managedobjectcontext]; } return context; } - (void)viewdidload { self.fetchedresultscontroller = nil; self.fetchedresultscontroller.delegate = nil; } - (nsfetchedresultscontroller *)fetchedresultscontroller { if (_fetchedresultscontroller != nil) { return _fetchedresultscontroller; } nsmanagedobjectcontext *managedobjectcontext = [self managedobjectcontext]; // create , configure fetch request plant entity. nsfetchrequest *fetchrequest = [[nsfetchrequest alloc] init]; nsentitydescription *entity = [nsentitydescription entityforname:@"travel" inmanagedobjectcontext:managedobjectcontext]; [fetchrequest setentity:entity]; // create sort descriptors array. nssortdescriptor *namedescriptor = [[nssortdescriptor alloc] initwithkey:@"name" ascending:yes]; nsarray *sortdescriptors = [[nsarray alloc] initwithobjects:namedescriptor, nil]; [fetchrequest setsortdescriptors:sortdescriptors]; // create , initialize fetch results controller. nsfetchedresultscontroller *afetchedresultscontroller = [[nsfetchedresultscontroller alloc] initwithfetchrequest:fetchrequest managedobjectcontext:managedobjectcontext sectionnamekeypath:@"country" cachename:@"country"]; self.fetchedresultscontroller = afetchedresultscontroller; _fetchedresultscontroller.delegate = self; return _fetchedresultscontroller; } - (nsinteger)numberofsectionsintableview:(uitableview *)tableview { // return number of sections. return [[self.fetchedresultscontroller sections] count]; } - (nsinteger)tableview:(uitableview *)tableview numberofrowsinsection:(nsinteger)section { id <nsfetchedresultssectioninfo> sectioninfo = [self.fetchedresultscontroller sections][section]; return [sectioninfo numberofobjects]; } - (nsstring *)tableview:(uitableview *)tableview titleforheaderinsection:(nsinteger)section { return @""; } i followed tutorial tableview empty now. tableview worked before fine (with coredata). maybe knows answer question. thanks.
you appear have forgotten after constructing nsfetchedresultscontroller:
nserror *error; bool success = [_fetchedresultscontroller performfetch:&error];
Comments
Post a Comment