Core data CoreData:错误:未能调用NSManagedObject类上指定的初始值设定项';类名';
我试图将CoreData与RestKit0.20.0一起使用,但发现CoreData错误 //答复.hCore data CoreData:错误:未能调用NSManagedObject类上指定的初始值设定项';类名';,core-data,ios6,restkit,restkit-0.20,Core Data,Ios6,Restkit,Restkit 0.20,我试图将CoreData与RestKit0.20.0一起使用,但发现CoreData错误 //答复.h #import <Foundation/Foundation.h> #import <CoreData/CoreData.h> @interface Response : NSManagedObject @property (nonatomic, retain) NSString * status; @property (nonatomic, retain) NS
#import <Foundation/Foundation.h>
#import <CoreData/CoreData.h>
@interface Response : NSManagedObject
@property (nonatomic, retain) NSString * status;
@property (nonatomic, retain) NSString * responseCode;
@property (nonatomic, retain) NSString * responseMsg;
@property (nonatomic, retain) NSString * error;
@property (nonatomic, retain) NSString * statisticsDetails;
@end
我的ViewController代码是
//ViewController.m
#import "ViewController.h"
#import "StatisticsDetails.h"
#import "TopProjects.h"
#import <RestKit.h>
- (void)viewDidLoad
{
[super viewDidLoad];
RKObjectManager *manager = [RKObjectManager managerWithBaseURL:[NSURL URLWithString:@"http://mylocalUrl.com/Port"]];
/*managed object model */
NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"Model" withExtension:@"momd"];
NSManagedObjectModel *managedObjectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];
NSLog(@"managed object model: %@", managedObjectModel);
/* managed object store */
RKManagedObjectStore *managedObjectStore = [[RKManagedObjectStore alloc] initWithManagedObjectModel:managedObjectModel];
manager.managedObjectStore = managedObjectStore;
NSLog(@"managed object store: %@", managedObjectStore);
/* persistent store*/
NSError *error;
NSString *storePath = [RKApplicationDataDirectory() stringByAppendingPathComponent:@"Model.sqlite"];
NSPersistentStore *persistentStore = [managedObjectStore addSQLitePersistentStoreAtPath:storePath fromSeedDatabaseAtPath:nil withConfiguration:nil options:nil error:&error];
if (error) {
NSLog(@"unresolved error , ");
NSAssert(persistentStore, @"Failed to add persistent store with error: %@", error);
}
/* managed object contexts*/
[managedObjectStore createManagedObjectContexts];
/* entity mapping */
RKEntityMapping *responseEntityMapping =[RKEntityMapping mappingForEntityForName:@"Response" inManagedObjectStore:managedObjectStore];
[responseEntityMapping addAttributeMappingsFromDictionary:@{
@"status" : @"status",
@"responseCode":@"responseCode",
@"responseMsg":@"responseMsg",
@"error":@"error",
@"statisticsDetails":@"statisticsDetails"
}];
RKResponseDescriptor *ResponseDescriptor = [ RKResponseDescriptor responseDescriptorWithMapping:responseEntityMapping pathPattern:nil keyPath:@"" statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)];
[[RKObjectManager sharedManager] getObjectsAtPath:@"getStatistics/4" parameters:nil success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {
/* NSLog(@"mapping result: %d", [mappingResult array].count);
NSLog(@"Mapping Result: %@", mappingResult.array);
} failure:^(RKObjectRequestOperation *operation, NSError *error) {
RKLogError(@"Operation failed with error: %@", error);
}];
请帮帮我。提前感谢您正在创建
RKObjectManager
实例,但您没有为其提供对managedObjectStore
的引用,这很可能是问题的原因。manager.managedObjectStore=managedObjectStore;你说的是这条线吗?。如果没有,请帮助我。
#import "ViewController.h"
#import "StatisticsDetails.h"
#import "TopProjects.h"
#import <RestKit.h>
- (void)viewDidLoad
{
[super viewDidLoad];
RKObjectManager *manager = [RKObjectManager managerWithBaseURL:[NSURL URLWithString:@"http://mylocalUrl.com/Port"]];
/*managed object model */
NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"Model" withExtension:@"momd"];
NSManagedObjectModel *managedObjectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];
NSLog(@"managed object model: %@", managedObjectModel);
/* managed object store */
RKManagedObjectStore *managedObjectStore = [[RKManagedObjectStore alloc] initWithManagedObjectModel:managedObjectModel];
manager.managedObjectStore = managedObjectStore;
NSLog(@"managed object store: %@", managedObjectStore);
/* persistent store*/
NSError *error;
NSString *storePath = [RKApplicationDataDirectory() stringByAppendingPathComponent:@"Model.sqlite"];
NSPersistentStore *persistentStore = [managedObjectStore addSQLitePersistentStoreAtPath:storePath fromSeedDatabaseAtPath:nil withConfiguration:nil options:nil error:&error];
if (error) {
NSLog(@"unresolved error , ");
NSAssert(persistentStore, @"Failed to add persistent store with error: %@", error);
}
/* managed object contexts*/
[managedObjectStore createManagedObjectContexts];
/* entity mapping */
RKEntityMapping *responseEntityMapping =[RKEntityMapping mappingForEntityForName:@"Response" inManagedObjectStore:managedObjectStore];
[responseEntityMapping addAttributeMappingsFromDictionary:@{
@"status" : @"status",
@"responseCode":@"responseCode",
@"responseMsg":@"responseMsg",
@"error":@"error",
@"statisticsDetails":@"statisticsDetails"
}];
RKResponseDescriptor *ResponseDescriptor = [ RKResponseDescriptor responseDescriptorWithMapping:responseEntityMapping pathPattern:nil keyPath:@"" statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)];
[[RKObjectManager sharedManager] getObjectsAtPath:@"getStatistics/4" parameters:nil success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {
/* NSLog(@"mapping result: %d", [mappingResult array].count);
NSLog(@"Mapping Result: %@", mappingResult.array);
} failure:^(RKObjectRequestOperation *operation, NSError *error) {
RKLogError(@"Operation failed with error: %@", error);
}];
2013-07-12 12:35:09.098 Dashboard[85919:5403] CoreData: error: Failed to call designated initializer on NSManagedObject class 'ResponseClas'