#objective-c #restkit
#objective-c #restkit
Вопрос:
я получаю этот сбой утверждения во время выполнения при инициализации Restkit:
2011-11-09 08:00:50.817 myapp[32572:207] application:didFinishLaunchingWithOptions:
2011-11-09 08:00:50.820 myapp[32572:207] D app:myappAppDelegate.m:179 Initializing Restkit...
2011-11-09 08:00:50.889 myapp[32572:207] D restkit.network.queue:RKRequestQueue.m:214 Queue <RKRequestQueue: 0x742bde0> has been unsuspended
2011-11-09 08:00:50.889 myapp[32572:207] D restkit.network.queue:RKRequestQueue.m:48 Shared queue initialized: <RKRequestQueue: 0x742bde0>
2011-11-09 08:00:50.890 myapp[32572:207] D restkit.network.queue:RKRequestQueue.m:207 Queue <RKRequestQueue: 0x742bde0> has been suspended
2011-11-09 08:00:50.890 myapp[32572:207] D restkit.network:RKClient.m:250 Base URL changed for client <RKClient: 0x7136a00>, suspending main queue until reachability to host 'localhost' can be determined
2011-11-09 08:00:50.973 myapp[32572:207] D app:myappAppDelegate.m:190 Begining object mapping...
2011-11-09 08:00:50.974 myapp[32572:207] *** Assertion failure in -[RKManagedObjectMapping initWithEntity:], /Users/alex/Development/myapp/Libraries/RestKit/Code/CoreData/RKManagedObjectMapping.m:32
sharedlibrary apply-load-rules all
это код:
// RestKit
#import <RestKit/RestKit.h>
#import <RestKit/CoreData/CoreData.h>
#import <RestKit/Support/JSON/JSONKit/RKJSONParserJSONKit.h>
#import "DBManagedObjectCache.h"
#import "DBUser.h"
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
...
RKLogDebug(@"Initializing Restkit...");
RKObjectManager* objectManager = [RKObjectManager objectManagerWithBaseURL:@"http://localhost:8888"];
//objectManager.router = [[RKDynamicRouter new] autorelease];
//manager.router = router;
objectManager.objectStore = [[[RKManagedObjectStore alloc] initWithStoreFilename:@"mydb.sqlite"] autorelease];
objectManager.objectStore.managedObjectCache = [[DBManagedObjectCache new] autorelease];
RKLogDebug(@"Begining object mapping...");
RKManagedObjectMapping* userMapping = [RKManagedObjectMapping mappingForClass:[DBUser class]];
RKLogDebug(@"Begining object mapping... 1");
userMapping.primaryKeyAttribute = @"userID";
userMapping.setDefaultValueForMissingAttributes = YES; // clear out any missing attributes (token on logout)
...
}
именно здесь происходит сбой в RKManagedObjectMapping.m:
- (id)initWithEntity:(NSEntityDescription*)entity {
NSAssert(entity, @"Cannot initialize an RKManagedObjectMapping without an entity. Maybe you want RKObjectMapping instead?");
...
есть какие-нибудь идеи? Спасибо!!!!
кки
Ответ №1:
Спасибо tegbains за введение в restkit, что на самом деле решило проблему, так это создание объекта DBUser в DataModel.xcdatamodel 🙂
Ответ №2:
Я думаю, вы не используете CoreData. Вам следует рассмотреть возможность использования RKObjectMapping
и связанных с ними неуправляемых объектов и сопоставлений объектов в соответствии с этим руководством