0

次のコードを使用してslqiteファイルをダウンロードして保存しています

self.responseData = NSMutableData

受け取りresponseData = 2048bytesます。うまく機能しています。

ただし、白で書き込むとファイルmyFile.sqliteが作成されますが、ゼロバイトです。なにが問題ですか?

- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
    NSFileManager *fileManager = [NSFileManager defaultManager];
    NSString *dbPath = [self getDBPath];
    BOOL success = [fileManager fileExistsAtPath:dbPath];
    if(!success)
    {
        if(self.responseData)
        {
            dbPath = [dbPath stringByAppendingPathComponent:[self.selectedBtn.dbPath lastPathComponent]];
            [self.responseData writeToFile:dbPath atomically:YES];
            [self performSegueWithIdentifier:@"list" sender:self];
        }
    }

    [self.alertView removeFromSuperview];
}

-(NSString *) getDBPath
{
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory , NSUserDomainMask, YES);
    NSString *documentsDir = [paths objectAtIndex:0];
    NSURL *url = [[NSURL alloc] initWithString:[self.selectedBtn.dbPath lastPathComponent]];
    return [documentsDir stringByAppendingPathComponent:[url lastPathComponent]];
}

エラーが発生します

`The operation couldn’t be completed. (Cocoa error 4.)`

dbPath : /Users/umar/Library/Application Support/iPhone Simulator/6.1/Applications/00027635-CE9C-48C3-8000-64CA1E6532F1/Documents/music.sqlite/music.sqlite
4

2 に答える 2

1
Documents/music.sqlite/music.sqlite

いや、これは有効な道ではありません...あなたは意味しましDocuments/music.sqliteたね?NSURLまた、あなたが無関係な仕事のために貧しい人々をレイプしている理由もわかりません。

return [documentsDir stringByAppendingPathComponent:[self.selectedBtn.dbPath lastPathComponent]];

また、self.selectedBtn.dbPathこれも実際に有効なパスであり、ジャンクではないことを確認してください(想像できます)。

于 2013-03-14T20:10:51.877 に答える
1

あなたは2回追加しています。1[self.selectedBtn.dbPath lastPathComponent]回はで、もう1回はgetDBPathイオンconnctionDidFinishLoadingです。

それらのインスタンスの1つを選択して削除します。

于 2013-03-14T20:12:23.730 に答える