2012-05-31 14 views
15

私は、フォルダ全体がiTunesでバックアップされないようにしようとしています。私はテクニカルレポートに従いましたhttp://developer.apple.com/library/ios/#qa/qa1719/_index.htmlしかし、それはいつも怠け者ではないようです。私はシミュレータとデバイスで試したIOS 5.1を使用します。しかし何も役に立たない。メソッドは毎回「成功」を返しますが、フラグはまだゼロです。NSURLIsExcludedFromBackupKeyを正しく設定できません

+ (BOOL) hasSkipBackupAttributeToItemAtURL:(NSURL *)URL 
{ 
    NSError *error = nil; 

    id flag = nil; 
    BOOL success = [URL getResourceValue: &flag 
            forKey: NSURLIsExcludedFromBackupKey error: &error]; 

    if(!success){ 

     NSLog(@"Error excluding %@ from backup %@", [URL lastPathComponent], error); 
     return false; 
    } 

    if (!flag) 
     return false; 

    return [flag boolValue]; 
} 

+ (BOOL)addSkipBackupAttributeToItemAtURL:(NSURL *)URL 
{ 
    NSError *error = nil; 

    BOOL success = [URL setResourceValue: [NSNumber numberWithBool: YES] 
            forKey: NSURLIsExcludedFromBackupKey error: &error]; 

    if(!success){ 

     NSLog(@"Error excluding %@ from backup %@", [URL lastPathComponent], error); 

    } 

    return success; 

} 

+ (BOOL)removeSkipBackupAttributeToItemAtURL:(NSURL *)URL 
{ 
    NSError *error = nil; 

    BOOL success = [URL setResourceValue: [NSNumber numberWithBool: NO] 
            forKey: NSURLIsExcludedFromBackupKey error: &error]; 

    if(!success){ 

     NSLog(@"Error excluding %@ from backup %@", [URL lastPathComponent], error); 

    } 

    return success; 

} 

答えて

26

私のアプリでこれを修正しましたが、それはちょっとイライラしていましたが、すべてがうまくいっていました。 addSkipBackupAttributeToItemAtURLのコードは次のとおりです。あなたはそれをチェックしたいかもしれません。それは5.0.1と5.0も扱います。あなたはあなたのコードで5.1以上しか扱っていません。

しかし:

はあなたがNSStringの*パスを持っているとしましょう - あなたのファイル/フォルダへのパス、でメソッドを呼び出すことはありません:

[NSURL urlWithString:path];それは5.0上で動作します.1ではなく、5.1以上ではない。

代わりuse [NSURL fileURLWithPath:path];

だから:[MyClassのaddSkipBackupAttributeToItemAtURL:[NSURL fileURLWithPath:パス]。

実際、私はあなたのコードで唯一の問題だと思います。私がリンクしている方法を取ることは、下位互換性を提供するだけであり、これは素晴らしい追加です。

これが役に立ちます。

よろしく、私のために ジョージ

+1

華麗なあなたは私の朝を救っ: は、私もそれが正しい方法だと私はaddSkipBackupAttributeToItemAtURL と呼ばれる方法を変え解決しました! – microspino

+0

ありがとう!!! FWIW、私はAppleにバグ報告をしました...それが動作しない場合、少なくともエラーを出すべきです。 –

+0

それは間違いなく独特で奇妙なものではありません....ありがとうございました。完全に私に悲しみのトンを救った。 – DanM

2

同じ問題。

[MyClass addSkipBackupAttributeToItemAtURL:[NSURL fileURLWithPath:path]]; 
関連する問題