Вы перенесли приложение из более ранней версии Xcode? Если это так, то Xcode теперь делает предположение о вашем размере экрана, и вам нужно указать фактический размер экрана во время выполнения.
Существует два способа:
a) Если вы используете экран запуска.
Вам не хватает файла LaunchScreen.storyboard. Создайте файл LaunchScreen.storyboard и добавьте его в свой проект.
b) Если вы не используете экран запуска.
Перейдите в настройки вашей цели и выберите «Общие», затем «Приложение» Иконки и запуск изображений. Теперь установите «Launch Screen File» на ваш «main.storyboard» (или, если необходимо, другой раскадровки)
Вы можете использовать usort()
для $array1
и передать $array2
в качестве массива поиска порядка сортировки.
Код: ( Демонстрация )
$array1 = [
[536870914 => 34213897],
[536870914 => 34213905],
[536870915 => 34213921],
[536870914 => 34213913],
[536870915 => 34213929],
[536870917 => 34213937],
[536870925 => 34218049],
];
$array2 = [
536870925,
536870914,
536870915,
536870917,
];
usort($array1, function($a, $b) use ($array2) {
return array_search(key($a), $array2) <=> array_search(key($b), $array2);
});
var_export($array1);
Чтобы сделать этот процесс более эффективным, переверните поисковый массив заранее.
Код: ( Демонстрация )
$array2 = array_flip($array2);
usort($array1, function($a, $b) use ($array2) {
return $array2[key($a)] <=> $array2[key($b)];
});
var_export($array1);
Если некоторые идентификаторы из массива1 не представлены в массиве2, вам необходимо определить, как эти выбросы должны быть отсортированы. Если вы не настроите пропущенные значения в массиве поиска, вы сгенерируете Уведомления и получите неожиданный результат сортировки.
Вот аналогичный пост, который предлагает некоторые рекомендации по этому вопросу: