Я пытаюсь реализовать новое истончение функционального приложения iOS9, я понял, как пометить изображение и включить ресурс по запросу в Xcode 7, но я не понимаю, как реализовать NSBundleResourceRequest в моем приложении, может кто-нибудь помочь мне, это было бы очень признательно
доступ и загрузка ресурсов по запросу iOS9
Ответы (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
привет, Роланд, я только что использовал в своей демонстрации для локализации, как это, но он загружает все теги сразу, вы можете мне помочь
- person Abhilash; 30.07.2015
Вам нужно отредактировать массив тегов и загрузить только те, которые вам нужны в данный момент.
- 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