加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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 =存储元数据恢复似乎失败,请尝试再次将商店添加到协调器.如果不成功,请将数据迁移到新的泛素化持久性存储.},{
?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文件解决了这个问题,并从设备中删除了应用程序然后重建.它对我有用.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读