My code is as follows:
NSManagedObjectContext *context = [self.fetchedResultsController managedObjectContext];
NSEntityDescription *entity = [[self.fetchedResultsController fetchRequest] entity];
NSManagedObject *newManagedObject = [NSEntityDescription insertNewObjectForEntityForName:[entity name] inManagedObjectContext:context];
[newManagedObject setValue:[NSDate date] forKey:@"date"];
NSError *error = nil;
if (![context save:&error]) {
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
abort();
}
in the header .h, I have this:
@interface TretiViewController : UIViewController <NSFetchedResultsControllerDelegate> {
NSFetchedResultsController *fetchedResultsController_;
NSManagedObjectContext *managedObjectContext_;
}
@property (nonatomic, retain) NSManagedObjectContext *managedObjectContext;
@property (nonatomic, retain) NSFetchedResultsController *fetchedResultsController;
It should save data using kernel data, but it crashes to an error:
NavTest[1372:207] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '+entityForName: could not locate an NSManagedObjectModel for entity name 'Obrat''
*** Call stack at first throw:
(
0 CoreFoundation 0x00f92be9 __exceptionPreprocess + 185
1 libobjc.A.dylib 0x010e75c2 objc_exception_throw + 47
2 CoreData 0x00cbf45b +[NSEntityDescription entityForName:inManagedObjectContext:] + 187
3 NavTest 0x0000c210 -[TretiViewController fetchedResultsController] + 187
4 NavTest 0x00007a76 -[TretiViewController ukazObrat0] + 38
5 UIKit 0x002c4a6e -[UIApplication sendAction:to:from:forEvent:] + 119
6 UIKit 0x003531b5 -[UIControl sendAction:to:forEvent:] + 67
7 UIKit 0x00355647 -[UIControl(Internal) _sendActionsForEvents:withEvent:] + 527
8 UIKit 0x00354438 -[UIControl touchesBegan:withEvent:] + 277
9 UIKit 0x0054f987 _UIGestureRecognizerSortAndSendDelayedTouches + 3609
10 UIKit 0x005500fc _UIGestureRecognizerUpdateObserver + 927
11 CoreFoundation 0x00f73fbb __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 27
12 CoreFoundation 0x00f090e7 __CFRunLoopDoObservers + 295
13 CoreFoundation 0x00ed1bd7 __CFRunLoopRun + 1575
14 CoreFoundation 0x00ed1240 CFRunLoopRunSpecific + 208
15 CoreFoundation 0x00ed1161 CFRunLoopRunInMode + 97
16 GraphicsServices 0x018c7268 GSEventRunModal + 217
17 GraphicsServices 0x018c732d GSEventRun + 115
18 UIKit 0x002d342e UIApplicationMain + 1160
19 NavTest 0x00002594 main + 102
20 NavTest 0x00002525 start + 53
)
in NavTest.xcdatamodelI have two objects: Ottta, attributesand Evet, by default.
- (NSFetchedResultsController *)fetchedResultsController {
if (fetchedResultsController_ != nil) {
return fetchedResultsController_;
}
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Obrat" inManagedObjectContext:self.managedObjectContext];
[fetchRequest setEntity:entity];
[fetchRequest setFetchBatchSize:20];
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"date" ascending:NO];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
[fetchRequest setSortDescriptors:sortDescriptors];
NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:self.managedObjectContext sectionNameKeyPath:nil cacheName:@"Root"];
aFetchedResultsController.delegate = self;
self.fetchedResultsController = aFetchedResultsController;
[aFetchedResultsController release];
[fetchRequest release];
[sortDescriptor release];
[sortDescriptors release];
NSError *error = nil;
if (![fetchedResultsController_ performFetch:&error]) {
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
abort();
}
return fetchedResultsController_;
}
What am I missing?
Csabi source
share