设置CDEPersistentStoreEnsemble给出了[NSMapTable cde_strongToStrongObjectsMapTable]:

问题描述:

我正在设置合奏将CoreData同步到iCloud。 但它在发射时崩溃: [NSMapTable cde_strongToStrongObjectsMapTable]:无法识别的选择器发送到类0x10d978c70 2016-08-05 12:48:42.502 Shooters_Journal [30266:751831] ***终止应用程序由于未捕获的异常'NSInvalidArgumentException',原因:'+ [NSMapTable cde_strongToStrongObjectsMapTable]:无法识别的选择器发送到类0x10d978c70'设置CDEPersistentStoreEnsemble给出了[NSMapTable cde_strongToStrongObjectsMapTable]:

我不明白这是什么意思。我如何继续调试? 我已经添加了我的CoreData Stack和Ensembles安装程序。为了记录,该应用程序工作得很好,但没有设置合奏。 在我的AppDelegate我有:

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { 
// setups 


// Setup Ensemble 

     let modelURL = NSBundle.mainBundle().URLForResource("Myidentifier", withExtension: "momd") 
     cloudFileSystem = CDEICloudFileSystem(ubiquityContainerIdentifier: nil) 
     let storeURL = self.applicationDocumentsDirectory.URLByAppendingPathComponent("CoreData.sqlite") 

     ensemble = CDEPersistentStoreEnsemble(ensembleIdentifier: "ShotsStore", persistentStoreURL: storeURL, managedObjectModelURL: modelURL!, cloudFileSystem: cloudFileSystem) 
     ensemble.delegate = self 

return true 
    } 

我CoreData堆栈是默认的Xcode创建

// MARK: - Core Data stack 

    lazy var applicationDocumentsDirectory: NSURL = { 

     let urls = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask) 
     return urls[urls.count-1] 
    }() 

    lazy var managedObjectModel: NSManagedObjectModel = { 

     let modelURL = NSBundle.mainBundle().URLForResource("Myidentifier", withExtension: "momd") 

     return NSManagedObjectModel(contentsOfURL: modelURL!)! 

    }() 

    lazy var persistentStoreCoordinator: NSPersistentStoreCoordinator = { 

     // Create the coordinator and store 
     let coordinator = NSPersistentStoreCoordinator(managedObjectModel: self.managedObjectModel) 
     let storeUrl = self.applicationDocumentsDirectory.URLByAppendingPathComponent("SingleViewCoreData.sqlite") 
     var failureReason = "There was an error creating or loading the application's saved data." 



     do { 
      try coordinator.addPersistentStoreWithType(NSSQLiteStoreType, configuration: nil, URL: storeUrl, options: nil) 

     } catch { 
      // Report any error we got. 
      var dict = [String: AnyObject]() 
      dict[NSLocalizedDescriptionKey] = "Failed to initialize the application's saved data" 
      dict[NSLocalizedFailureReasonErrorKey] = failureReason 

      dict[NSUnderlyingErrorKey] = error as NSError 
      let wrappedError = NSError(domain: "YOUR_ERROR_DOMAIN", code: 9999, userInfo: dict) 

      NSLog("Unresolved error \(wrappedError), \(wrappedError.userInfo)") 
      abort() 
     } 

     return coordinator 
    }() 

    lazy var managedObjectContext: NSManagedObjectContext = { 

     let coordinator = self.persistentStoreCoordinator 
     var managedObjectContext = NSManagedObjectContext(concurrencyType: .MainQueueConcurrencyType) 
     managedObjectContext.persistentStoreCoordinator = coordinator 
     return managedObjectContext 
    }() 

该应用程序编译罚款,但开始我得到以下错误:

[NSMapTable cde_strongToStrongObjectsMapTable]: unrecognized selector sent to class 0x10d978c70

所有我现在是那行:

ensemble = CDEPersistentStoreEnsemble(ensembleIdentifier: "ShotsStore", persistentStoreURL: storeURL, managedObjectModelURL: modelURL!, cloudFileSystem: cloudFileSystem) 

正在导致崩溃。 我不知道是否它的persistentStoreURL,managedObjectModelURL或cloudFileSystem cousing错误。

我想你忘了README中的-ObjC步骤。这将导致所有类别链接,这是导致缺少符号错误。