2013-02-19 4 views
0

Чтобы исключить файлы из резервных копий в ICloud и Itunes, я использовал код ниже:Получить атрибут NSURLIsExcludedFromBackupKey файла

BOOL success = [URL setResourceValue: [NSNumber numberWithBool: YES] 

           forKey: NSURLIsExcludedFromBackupKey error: &error]; 

Значение успеха YES, но я все равно хочу, чтобы проверить соответствующий атрибут файла. Я пытаюсь использовать код ниже, но он не работает:

NSLog(@"%@",[URL valueForKey:NSURLIsExcludedFromBackupKey]); 

Каков правильный путь для достижения моей цели? благодаря!

+0

Вы не пробовали метод getResourceValue? https://developer.apple.com/library/ios/documentation/Cocoa/Reference/Foundation/Classes/NSURL_Class/Reference/Reference.html#//apple_ref/occ/instm/NSURL/getResourceValue:forKey:error: – Shashank

+0

@ Нет. Я думаю, это может сработать. Но, как установить fisrt два параметра для этой функции? – itenyh

ответ

0

Как предложил Шашанк, если вы задаете значение ресурса через setResourceValue, вам необходимо получить к нему доступ через getResourceValue. valueForKey предназначен для KVC и не имеет отношения к значениям ресурсов.

Для того, чтобы сделать это, вам нужно передать в объект, который вы хотите провести результат.

NSNumber* backupKeyResult = nil; 
NSError* error = nil; 

BOOL result = [URL getResourceValue:&result forKey:NSURLIsExcludedFromBackupKey error:&error]; 

if (result && !error) { 
    if (backupKeyResult) { 
     BOOL backupKeySet = [backupKeyResult boolValue]; 
     // backupKeySet has the value you've set previously 
    } 
    else { 
     // The requested resource value is not defined for the URL. 
    } 
} 
else { 
    if (error) { 
     // An error occurred whilst trying this, check your NSError object to see what's up 
    } 
    else if (!result) { 
     // The value was not successfully populated 
    } 
} 
Смежные вопросы