NSURLIsExcludedFromBackupKey нельзя установить правильно
Я пытаюсь предотвратить создание целой папки с помощью itunes. Я следил за Техническим отчетом http://developer.apple.com/library/ios/#qa/qa1719/_index.html Но кажется, что falg - это каждый раз ноль. Я использую IOS 5.1 в симуляторе и на устройстве. Но ничего не помогает. Методы возвращают "успех" каждый раз, но флаг по-прежнему равен нулю.
+ (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;
}
Ответы
Ответ 1
Я только что исправил это в своем приложении, и, хотя это было расстраивать, все закончилось тем, что отлично работало.
Итак, вот код для 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: путь]];
На самом деле, я думаю, что это единственная проблема с вашим кодом. Принимая метод, с которым я связан, обеспечит только обратную совместимость, что является отличным дополнением.
Надеюсь, что это поможет.
С уважением,
Джордж
Ответ 2
Такая же проблема для меня.
Я также решил это изменить способ, которым я называл addSkipBackupAttributeToItemAtURL
Это правильный способ:
[MyClass addSkipBackupAttributeToItemAtURL:[NSURL fileURLWithPath:path]];