2

サーバーからローカルファイルを「更新」したいです(ディレクトリに保存します)。私はすべてを試しました!何も機能しません!それが私の最後の試みです:

    NSURL *url = [NSURL URLWithString:@"http://www.doothie.com/QAFrameworks/QAUpdater.php"];
    NSData *urlData = [NSData dataWithContentsOfURL:url];


    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"general.qa"];

    NSString *str = [[NSString alloc] initWithData:urlData encoding:NSUTF8StringEncoding];

    [str writeToFile:filePath atomically:TRUE encoding:NSUTF8StringEncoding error:NULL];
4

1 に答える 1

3

それがあなたがやろうとしていることかどうかはわかりませんが、アプリケーション バンドルにあるファイルをダウンロードして置き換えようとするべきではありません。代わりに、ファイルをユーザーの~/Library/Application Support/<yourApplicationName>/<yourFiles>. アプリケーション バンドル内のファイルを使用する前に、最新のデータを含むファイルがアプリケーション サポートにあるかどうかを確認してください。アプリケーションがすべてのユーザー ( 内/Applications/) に対してインストールされている場合、管理者以外のユーザーにはアプリ バンドル内のファイルを変更する権限がありません。(そして、すべてのユーザーが管理者権限で実行されていると想定すべきではありません。)

おそらくそれが起こっていることです。

さらに、すべてを NSString にロードしています。ファイルには実際にテキストが含まれていますか?! そうでない場合は、代わりに NSData を使用することをお勧めします。

[[NSData dataWithContentsOfURL:url] writeToFile:filePath atomically:TRUE];
于 2011-12-01T18:17:51.947 に答える