PhpickerviewController не уважает порядок выбора изображения?IOS

Программируем под IOS
Ответить
Anonymous
 PhpickerviewController не уважает порядок выбора изображения?

Сообщение Anonymous »

Мы создаем наш код с минимальным целевым iOS 15. < /p>
Мы выполняем несколько выбора изображения, используя следующий способ. < /p>

Код: Выделить всё

func chooseImage() {
var configuration = PHPickerConfiguration()

configuration.selectionLimit = 0

// https://developer.apple.com/documentation/photokit/phpickerconfiguration/selection
configuration.selection = .ordered

configuration.filter = .images
let picker = PHPickerViewController(configuration: configuration)
picker.delegate = self
present(picker, animated: true)
}
< /code>
Однако мы заметим, что выбираем изображения в следующем порядке < /p>
0.png
1.png
2.png
3.png
4.png
Мы не получаем такого же упорядочения изображения в phpickerviewcontrollerdelegate . Мы получим заказ случайным образом. Например. < /P>

Код: Выделить всё

3.png
2.png
4.png
0.png
1.png
Это код нашего phpickerviewcontrollerdelegate . Не имеет значения, используем ли мы Dispatchqueue или нет. Оба по -прежнему производят случайный заказ. < /P>

Код: Выделить всё

class NewNoteViewController: UIViewController {
static let theDispatchQueue = DispatchQueue(
label: "com.xxx.yyy.theDispatchQueue",
qos: .userInitiated,
target: nil
)
}

extension NewNoteViewController: PHPickerViewControllerDelegate {
func picker(_ picker: PHPickerViewController, didFinishPicking results: [PHPickerResult]) {
picker.dismiss(animated: true)
guard !results.isEmpty else { return }

print(">>>> start the for loop")

for result in results {
result.itemProvider.loadFileRepresentation(forTypeIdentifier: UTType.image.identifier) { [weak self] (url, error) in

NewNoteViewController.theDispatchQueue.sync {
self?.process(url)
}
}
}
}

private func process(_ url: URL?) {
precondition(!Thread.isMainThread)

guard let url = url else { return }

print(">>>> url \(url)")

...
}
}
У вас есть идея, почему происходит случайное упорядочение?>

Подробнее здесь: https://stackoverflow.com/questions/768 ... -selection
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»