доступ и загрузка ресурсов по запросу iOS9

Я пытаюсь реализовать новое истончение функционального приложения iOS9, я понял, как пометить изображение и включить ресурс по запросу в Xcode 7, но я не понимаю, как реализовать NSBundleResourceRequest в моем приложении, может кто-нибудь помочь мне, это было бы очень признательно


person Abhilash    schedule 28.07.2015    source источник


Ответы (2)


Во-первых, проверьте, доступны ли ресурсы. В противном случае скачайте их.

Вот код swift, который я использую

let tags = NSSet(array: ["tag1","tag2"])
let resourceRequest = NSBundleResourceRequest(tags: tags as! Set<String>)
resourceRequest.conditionallyBeginAccessingResourcesWithCompletionHandler {(resourcesAvailable: Bool) -> Void in
    if resourcesAvailable {
        // Do something with the resources
    } else {
        resourceRequest.beginAccessingResourcesWithCompletionHandler {(err: NSError?) -> Void in
            if let error = err {
                print("Error: \(error)")
            } else {
                // Do something with the resources
            }
        }
    }
}

Я также нашел это руководство очень полезно.

person Roland Keesom    schedule 29.07.2015
comment
привет, Роланд, я только что использовал в своей демонстрации для локализации, как это, но он загружает все теги сразу, вы можете мне помочь - person Abhilash; 30.07.2015
comment
Вам нужно отредактировать массив тегов и загрузить только те, которые вам нужны в данный момент. - person Roland Keesom; 31.07.2015

Большая часть информации доступна в Apple документация.

В основном вам нужно сделать это:

NSSet *tagsSet = [NSSet setWithObjects:@"resourceTag1", @"resourceTag2", nil];
NSBundleResourceRequest *request = [[NSBundleResourceRequest alloc] initWithTags:tagsSet];
[request conditionallyBeginAccessingResourcesWithCompletionHandler:^(BOOL resourcesAvailable) {
    if (resourcesAvailable) {
        // Start using resources.
    } else {
        [request beginAccessingResourcesWithCompletionHandler:^(NSError * _Nullable error) {
            if (error == nil) {
                // Start using resources.
            }
        }];
    }
}];
person Vlad Papko    schedule 28.07.2015