Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 将documents文件夹的.sqlite数据库文件备份并还原到iCloud?_Ios_Xcode_Sqlite_Icloud - Fatal编程技术网

Ios 将documents文件夹的.sqlite数据库文件备份并还原到iCloud?

Ios 将documents文件夹的.sqlite数据库文件备份并还原到iCloud?,ios,xcode,sqlite,icloud,Ios,Xcode,Sqlite,Icloud,我想在iCloud中存储.sqlite数据库文件。我使用了下面的代码,但当我登录到我的icloud帐户并在“icloud驱动器”中看到时,该驱动器中没有任何文件 我只想要icloud中我的Apps Documents文件夹的.sqlite文件,并从备份中恢复 我从xcode打开iCloud功能选项 代码: NSString *dataFile = [self getDBPath]; _documentURL = [NSURL fileURLWithPath:dataFile];

我想在iCloud中存储.sqlite数据库文件。我使用了下面的代码,但当我登录到我的icloud帐户并在“icloud驱动器”中看到时,该驱动器中没有任何文件

我只想要icloud中我的Apps Documents文件夹的.sqlite文件,并从备份中恢复

我从xcode打开iCloud功能选项

代码:

NSString *dataFile = [self getDBPath];
        
_documentURL = [NSURL fileURLWithPath:dataFile];
       
NSFileManager *filemgr = [NSFileManager defaultManager];
        
// [filemgr removeItemAtURL:_documentURL error:nil];
        
// _ubiquityURL = [[filemgr URLForUbiquityContainerIdentifier:nil] URLByAppendingPathComponent:@"Documents"];
        
_ubiquityURL = [[NSFileManager defaultManager] URLForUbiquityContainerIdentifier:nil];
        
_ubiquityURL = [_ubiquityURL URLByAppendingPathComponent:@"Documents"];
        
if ([filemgr fileExistsAtPath:[_ubiquityURL path]] == NO)
            [filemgr createDirectoryAtURL:_ubiquityURL
              withIntermediateDirectories:YES
                               attributes:nil
                                    error:nil];
        
_ubiquityURL = [_ubiquityURL URLByAppendingPathComponent:@"imageDB.sqlite"];
        
// Search for document in iCloud storage
_metadataQuery = [[NSMetadataQuery alloc] init];

[_metadataQuery setPredicate:[NSPredicate predicateWithFormat:@"%K LIKE 'imageDB.sqlite'",NSMetadataItemFSNameKey]];
[_metadataQuery setSearchScopes:[NSArray
                                         arrayWithObjects:NSMetadataQueryUbiquitousDocumentsScope,nil]];
        
 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(metadataQueryDidFinishGathering:) name: NSMetadataQueryDidFinishGatheringNotification object:_metadataQuery];

[_metadataQuery startQuery];
对于上载数据库.sqlite文件,我使用了:

NSError *error = nil;
    
if ([[NSFileManager defaultManager] setUbiquitous:YES itemAtURL:_documentURL destinationURL:_ubiquityURL error:&error] == YES)
{
    NSLog(@"setUbiquitous OK");
}
else
    NSLog(@"setUbiquitous Failed error = %@", error);
因此,请帮助我如何从我的应用程序备份我的.sqlite整个文件


还可以帮我从云端下载该文件。

你找到了一个很好的例子吗?没有@SAHM,如果你有建议的话