Я работаю над расширением поставщика файлов в Swift iOS, и я могу загрузить все данные в вызов API, но это вызывает проблему с памятью, и приложение сбоя. Чтобы решить эту проблему, я пытаюсь добавить страницу в тот же код, и в какой -то момент она работает нормально, но после загрузки файлов 10K она вообще не вызывает метод перечисления. < /P>
func enumerateItems(for observer: NSFileProviderEnumerationObserver, startingAt page: NSFileProviderPage) {
self.fetchDataFromServer()
}
< /code>
У меня есть отдельная переменная, называемая PageNumber, которую я поддерживаю на каждом ответе API, и если текущие элементы ответа равны ожидаемому ответу элемента, то я увеличиваю номер страницы и перечисляю элементы, как показано ниже в делегате ответа API. < /p>
if arrItems.count < self.pagination.limit {
obsv.didEnumerate(arrItems)
obsv.finishEnumerating(upTo: nil)
self.observer = nil
} else {
self.currentPage += 1
let providerPage = NSFileProviderPage("\(currentPage)".data(using: .utf8)!)
obsv.didEnumerate(arrItems)
obsv.finishEnumerating(upTo: providerPage)
}
< /code>
До страницы 9, все работает нормально, и он загружает около 10 тыс. Файлов, но после этого файлы все еще есть, но это не называется метод перечислителя. />https://www.kodeco.com/697468-ios-file-provider-extension-tutorial
Кроме того, я проверил документацию Apple и некоторую пример кода, но я не уверен, каково использование этих двух методов.
func enumerateChanges(for observer: NSFileProviderChangeObserver, from anchor: NSFileProviderSyncAnchor) {
}
func currentSyncAnchor(completionHandler: @escaping (NSFileProviderSyncAnchor?) -> Void) {
let data = "\(self.anchor)".data(using: .utf8)
completionHandler(NSFileProviderSyncAnchor(data!))
}
Если кто -то знает об этом, я был бы признателен, если бы вы могли поделиться любыми идеями по этому поводу.
Я работаю над расширением поставщика файлов в Swift iOS, и я могу загрузить все данные в вызов API, но это вызывает проблему с памятью, и приложение сбоя. Чтобы решить эту проблему, я пытаюсь добавить страницу в тот же код, и в какой -то момент она работает нормально, но после загрузки файлов 10K она вообще не вызывает метод перечисления. < /P> [code]func enumerateItems(for observer: NSFileProviderEnumerationObserver, startingAt page: NSFileProviderPage) { self.fetchDataFromServer() } < /code> У меня есть отдельная переменная, называемая PageNumber, которую я поддерживаю на каждом ответе API, и если текущие элементы ответа равны ожидаемому ответу элемента, то я увеличиваю номер страницы и перечисляю элементы, как показано ниже в делегате ответа API. < /p> if arrItems.count < self.pagination.limit { obsv.didEnumerate(arrItems) obsv.finishEnumerating(upTo: nil) self.observer = nil } else { self.currentPage += 1 let providerPage = NSFileProviderPage("\(currentPage)".data(using: .utf8)!) obsv.didEnumerate(arrItems) obsv.finishEnumerating(upTo: providerPage) } < /code> До страницы 9, все работает нормально, и он загружает около 10 тыс. Файлов, но после этого файлы все еще есть, но это не называется метод перечислителя. />https://www.kodeco.com/697468-ios-file-provider-extension-tutorial Кроме того, я проверил документацию Apple и некоторую пример кода, но я не уверен, каково использование этих двух методов. func enumerateChanges(for observer: NSFileProviderChangeObserver, from anchor: NSFileProviderSyncAnchor) { }
func currentSyncAnchor(completionHandler: @escaping (NSFileProviderSyncAnchor?) -> Void) { let data = "\(self.anchor)".data(using: .utf8) completionHandler(NSFileProviderSyncAnchor(data!)) } [/code] Если кто -то знает об этом, я был бы признателен, если бы вы могли поделиться любыми идеями по этому поводу.