0

上書きしたい XCode プロジェクトに含めたファイルがあります。このファイルは、book というディレクトリにある Introduction.html という名前です。

スクリーン ショットでは、ディレクトリ内の場所と、それに書き込もうとしているさまざまな試みを確認できます。

ここに画像の説明を入力

どんな助けでも大歓迎です!

編集私のコードは、写真ではそれほど読みにくいです:

 //Atempt 1
NSString *myString = [mutableArray objectAtIndex:0];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"/book/Introduction.html"];
[myString writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:&error];

//Attempt 2
[myString writeToFile:@"/book/Introduction.html" atomically:NO encoding:NSUTF8StringEncoding error:&error];

//Attempt 3
NSArray *paths2 = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
NSString *docDir = [paths2 objectAtIndex: 0];
NSString *docFile = [docDir stringByAppendingPathComponent: @"book/Introduction.html"];    
[myString writeToFile: docFile atomically:NO encoding:NSUTF8StringEncoding error:&error];


//Attempt 4
NSFileHandle *file;
NSMutableData *data;
const char *bytestring = "black dog";    
data = [NSMutableData dataWithBytes:bytestring 
                             length:strlen(bytestring)];
file = [NSFileHandle fileHandleForUpdatingAtPath: 
        @"book/Introduction.html"];
if (file == nil)
    NSLog(@"Failed to open file");
[file seekToFileOffset: 10];
[file writeData: data];
[file closeFile];
[file release];
4

1 に答える 1

0

イッジャワ、

ドキュメントを読んだ限り、iOS のサンドボックス メカニズムではアプリがこのスペースにアクセスできないため、「私の XCode プロジェクト内」のファイルは上書きできません。「アプリに同梱されているデータを上書きする必要がある場合は、それらを Documents ディレクトリにコピーし、コピーを上書きする」という指示を読んだことを覚えています。

したがって、最初にリソースバンドルからドキュメントディレクトリにファイルをコピーする必要があるという事実を保存して、試み1が最も近いと思います。

よろしく、のび

于 2012-07-24T05:42:22.557 に答える