1

iCloudバックアップからファイルを除外するために次のコードを追加しましたが、それでもアプリケーションは拒否されました:

   - (BOOL)addSkipBackupAttributeToItemAtURL:(NSURL *)URL
{
    if (&NSURLIsExcludedFromBackupKey == nil) { // iOS <= 5.0.1
        const char* filePath = [[URL path] fileSystemRepresentation];

        const char* attrName = "com.apple.MobileBackup";
        u_int8_t attrValue = 1;

        int result = setxattr(filePath, attrName, &attrValue, sizeof(attrValue), 0, 0);
        return result == 0;
    } else { // iOS >= 5.1


        NSLog(@"%d",[URL setResourceValue:[NSNumber numberWithBool:YES] forKey:NSURLIsExcludedFromBackupKey error:nil]);
        return [URL setResourceValue:[NSNumber numberWithBool:YES] forKey:NSURLIsExcludedFromBackupKey error:nil];
    }
}

シミュレーターの場合は、以下のURLをNSURLとして渡しました。

file:/// Users / TEST / Library / Application%20Support / iPhone%20Simulator / 5.1 / Applications / 62854BAB-AB51-4771-895F-28C61983A7AC / Documents / MyFolder "

誰かが私の間違いがこれのどこにあるかを示唆できますか?

4

2 に答える 2

3

コードは私には問題ないように見えます。

すべてのファイル/フォルダでフラグが正しく設定されていることを確認してください。

これは、このターミナルコマンド->ls-al-@で実行できます。

于 2012-05-14T18:53:31.123 に答える
2

問題は、渡すURLにあります。

データをフォルダに保存している場合でも、そのデータは2つのものです。

  1. ドキュメントフォルダにあるので、同期されます
  2. フォルダはアプリに関連付けられています

これを解決するには、/Documentsではなく/Libraryに保存する必要があります

したがって、URLは次のようになります

file:/// Users / TEST / Library / Application%20Support / iPhone%20Simulator / 5.1 / Applications /62854BAB-AB51-4771-895F-28C61983A7AC /ライブラリ/MyFolder

同期できないデータまたは外部データのみをライブラリフォルダに保存することは、iCloudが実装されて以来のAppleの新しい好みです。

于 2012-05-14T23:17:20.170 に答える