1

に sqlite ファイルをアップロードしようとしていますiCloud。あるファイルから別のファイルにファイルをコピーするために使用NSFileCoortinatorしていますが、sqlite ファイルのスキーマはコピーされるだけで、sqlite ファイルのデータを取得していません… iCloud。なぜこれが起こっているのかわかりません。これはsqliteファイルの問題ですか、それともコードで間違っていましたか。誰かが解決策を持っている場合は、私を助けてください。

-(void)uploadFile
{
    //-------code for uploading data to icloud
    NSArray *paths =
    NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory,
                                    NSUserDomainMask, YES);
    NSString *applicationSupportDirectory = [paths firstObject]

    NSString *str=[NSString stringWithFormat:@"%@/XMPPMessageArchiving.sqlite",applicationSupportDirectory];        //copy this file
    NSString *fileName = [NSString stringWithFormat:@"XMPPMessageArchiving.sqlite"];
    NSURL *ubiq = [[NSFileManager defaultManager] URLForUbiquityContainerIdentifier:nil];   

    NSFileCoordinator *coordinator = [[NSFileCoordinator alloc] initWithFilePresenter:nil];
    NSURL *fromURL = [NSURL fileURLWithPath:str];
    NSURL *toURL = [[ubiq URLByAppendingPathComponent:@"Documents"]
                            URLByAppendingPathComponent:fileName];;


    [coordinator coordinateReadingItemAtURL:fromURL options:0 writingItemAtURL:toURL options:NSFileCoordinatorWritingForReplacing error:nil byAccessor:^(NSURL *newReadingURL, NSURL *newWritingURL)
    {
         NSError *error=nil;
         NSData *data = [[NSFileManager defaultManager] contentsAtPath:fromURL.path];

         //if file is already present on icloud replace that file with new file
         BOOL fileExists = [[NSFileManager defaultManager] fileExistsAtPath:newWritingURL.path];

         if (fileExists)
         {
             [[NSFileManager defaultManager] removeItemAtPath:toURL.path error:NULL];
         }


         BOOL isCopied=  [[NSFileManager defaultManager] copyItemAtPath:newReadingURL.path toPath:newWritingURL.path error:nil];

     NSLog(@"file copied= %d",isCopied);

  }];
}

コピーされたファイルの値は常に 1 ですが、それでもデータは利用できません。

4

0 に答える 0