Сбой RestKit при создании отображения для основного объекта данных
Im setup restKit с помощью следующего метода конфигурации
private func createCoreDataStack(){
var managedObjectModel = NSManagedObjectModel.mergedModelFromBundles(nil);
var managedObjectStore = RKManagedObjectStore(managedObjectModel: managedObjectModel)
var error: NSError?;
var success = RKEnsureDirectoryExistsAtPath(RKApplicationDataDirectory(), &error);
if (success == false) {
// RKLogError("Failed to create Application Data Directory at path '%@': %@", RKApplicationDataDirectory(), error);
}
var path:String! = RKApplicationDataDirectory().stringByAppendingPathComponent("DB.sqlite")
var options = [NSMigratePersistentStoresAutomaticallyOption: NSNumber(bool: true), NSInferMappingModelAutomaticallyOption: NSNumber(bool: true)]
var persistentStore = managedObjectStore.addSQLitePersistentStoreAtPath(path, fromSeedDatabaseAtPath: nil, withConfiguration: nil, options: options, error: &error)
if (persistentStore == nil) {
// RKLogError("Failed adding persistent store at path '%@': %@", path, error);
}
managedObjectStore.createManagedObjectContexts()
managedObjectStore.managedObjectCache = RKInMemoryManagedObjectCache(managedObjectContext: managedObjectStore.persistentStoreManagedObjectContext)
var client = AFHTTPClient(baseURL: NSURL(string: "https://www.google.com/api"))
client.allowsInvalidSSLCertificate = true;
objectManager = RKObjectManager(HTTPClient: client)
objectManager.managedObjectStore = managedObjectStore
managedObjectStore.createPersistentStoreCoordinator()
RKObjectManager.setSharedManager(objectManager)
addMapping()
}
Также создал разрыв для моей основной сущности, используя метод addMapping(), что-то вроде этого:
private func addMapping(){
var mapping = RKEntityMapping(forEntityForName: "EntityName", inManagedObjectStore: objectManager.managedObjectStore)
mapping.identificationAttributes = ["id"]
mapping.addAttributeMappingsFromDictionary(["id":"id","uid":"uid","name":"name" ...])
//more code goes here
При запуске кода происходит сбой в последней строке, которую я предоставил в методе addMapping() (addAttributeMappingFromDictionary) с исключением:* Завершение работы приложения из-за необработанного исключения "NSInvalidArgumentException", причина: "* setObjectForKey: ключ не может быть равен nil"
Вот часть трассировки стека:
2 CoreFoundation 0x0000000105013af8 - [__ NSDictionaryM SetObject:forKey:] + 968 3 FoodBooking 0x00000001020c2279 __50-[RKPropertyInspector propertyInspectionForClass:]_block_invoke69 + 82 4 libdispatch.dylib 0x0000000106cf4614 _dispatch_client_callout + 8 5 libdispatch.dylib 0x0000000106cda002 _dispatch_barrier_sync_f_invoke + 365 6 AppName 0x00000001020c20b5 -[RKPropertyInspector propertyInspectionForClass:] + 886 7 AppName 0x00000001020c23d5 -[RKPropertyInspector classForPropertyNamed:ofClass:isPrimitive:] + 62 8 AppName 0x0000000102081e5b -[RKEntityMapping classForKeyPath:] + 309
Я понятия не имею, что происходит, и я открыт для всех и любых предложений