iphone – NSInternalInconsistencyException(执行SQL字符串’IN
发布时间:2020-12-14 20:00:28 所属栏目:百科 来源:网络整理
导读:iOS iCloud 由于未捕获的异常’NSInternalInconsistencyException’而终止应用程序,原因:’执行SQL字符串时出错’INSERT INTO Y_UBMETA(YPEERID,YTRANSACTIONNUMBER) 未解决的错误错误域= NSCocoaErrorDomain代码= 134312“存储元数据恢复似乎已失败,请尝试
iOS iCloud
由于未捕获的异常’NSInternalInconsistencyException’而终止应用程序,原因:’执行SQL字符串时出错’INSERT INTO Y_UBMETA(YPEERID,YTRANSACTIONNUMBER) 未解决的错误错误域= NSCocoaErrorDomain代码= 134312“存储元数据恢复似乎已失败,请尝试再次将存储添加到协调器.如果不成功,请将数据迁移到新的无处不在的持久存储.” UserInfo = 0xdba5b80 {NSLocalizedDescription =存储元数据恢复似乎失败,请尝试再次将商店添加到协调器.如果不成功,请将数据迁移到新的泛素化持久性存储.},{ 我该如何解决这个问题?因为它是iCloud的内部查询.我把我的代码块放在我写的方法之下. - (NSPersistentStoreCoordinator *)persistentStoreCoordinator { ? ? NSLog(@"persistentStoreCoordinator:%@",[persistentStoreCoordinator_ description]); ? ? if((persistentStoreCoordinator_ != nil)) ? ? { ? ? ? ? return persistentStoreCoordinator_; ? ? } ? ? NSLog(@"persistentStoreCoordinator:%@",[persistentStoreCoordinator_ description]); ? ? NSURL *storeURL = [[self applicationDocumentsDirectory] URLByAppendingPathComponent:@"CoreDataModel.sqlite"]; ? ? persistentStoreCoordinator_ = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]]; ? ? NSPersistentStoreCoordinator* psc = persistentStoreCoordinator_; ? ? NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; ? ? ? ? ? ? ? ? ? ? ? ? dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0),^{ ? ? ? ? NSFileManager *fileManager = [NSFileManager defaultManager]; ? ? ? ? // Migrate datamodel ? ? ? ? NSDictionary *options = nil; ? ? ? ? // this needs to match the entitlements and provisioning profile ? ? ? ? NSURL *cloudURL = [fileManager URLForUbiquityContainerIdentifier:nil]; ? ? ? ? NSLog(@"cloudURL:%@",cloudURL); ? ? ? ? ? ? //NSString* coreDataCloudContent = [[cloudURL path] stringByAppendingPathComponent:@"Data"]; ? ? ? ? ? ? ? ? ? ? ? ? ?cloudURL = [cloudURL URLByAppendingPathComponent:@"Data"]; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?// NSLog(@"coreDataCloudContent:%@",coreDataCloudContent); ? ? ? ?//if ([coreDataCloudContent length] != 0 && [[defaults objectForKey:@"allMetadataFlag"] isEqualToString:@"YES"]) ? ? ? ? ? ? ? ? ? ?if (cloudURL )//&& [[defaults objectForKey:@"allMetadataFlag"] isEqualToString:@"YES"]) ? ? ? ? ? ? ? ? ? ? { ? ? ? ? ? ? // iCloud is available ? ? ? ? ? ?// cloudURL = [NSURL fileURLWithPath:coreDataCloudContent]; ? ? ? ? ? ? NSLog(@"cloudURL:%@",cloudURL); ? ? ? ? ? ? options = [NSDictionary dictionaryWithObjectsAndKeys: ? ? ? ? ? ? ? ? ? ? ? ?[NSNumber numberWithBool:YES],NSMigratePersistentStoresAutomaticallyOption,? ? ? ? ? ? ? ? ? ? ? ?[NSNumber numberWithBool:YES],NSInferMappingModelAutomaticallyOption,? ? ? ? ? ? ? ? ? ? ? ?@"SecureAssistant.store",NSPersistentStoreUbiquitousContentNameKey,? ? ? ? ? ? ? ? ? ? ? ?cloudURL,NSPersistentStoreUbiquitousContentURLKey,nil]; ? ? ? ? } ? ? ? ? else ? ? ? ? { ? ? ? ? ? ? // iCloud is not available ? ? ? ? ? ? options = [NSDictionary dictionaryWithObjectsAndKeys: ? ? ? ? ? ? ? ? ? ? ? ?[NSNumber numberWithBool:YES],nil]; ? ? ? ? } ? ? ? ? ? ? NSError *error = nil; ? ? ? ? [psc lock]; ? ? ? ? if (![psc addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:options error:&error]) ? ? ? ? { ? ? ? ? ? ? NSLog(@"Unresolved error %@,%@",error,[error userInfo]); ? ? ? ? ? ? abort(); ? ? ? ? } ? ? ? ? [psc unlock]; ? ? ? ? dispatch_async(dispatch_get_main_queue(),^{ ? ? ? ? ? ? NSLog(@"asynchronously added persistent store!"); ? ? ? ? ? ? [[NSNotificationCenter defaultCenter] postNotificationName:@"RefetchAllDatabaseData" object:self userInfo:nil]; ? ? ? ? }); ? ? }); ? ? ? ?return persistentStoreCoordinator_; } 解决方法
我遇到了同样的问题,之所以发生这种情况,是因为我已经从Xcode更改了datamodel的属性,而不是通过代码更改了我的app.我通过从iCloud删除SQLite文件解决了这个问题,并从设备中删除了应用程序然后重建.它对我有用.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |