Я могу программно зеркально отразить значения Info.plist, в то время как мое приложение работает?

Я сказал бы, давайте протестируем его!:)

я попробовал quicksort, но сортировка почти сортирующего массива с quicksort... хорошо, не действительно хорошая идея. Я попробовал измененный, убегающий в 7 элементах и использующий вид вставки для этого. Однако, ужасная производительность. Я переключился на сортировку слиянием. Возможно, требовалась бы довольно большую память для сортировки (это не существует), но производительность намного лучше на сортированных массивах и почти идентична на случайных (начальный вид занял почти то же время для обоих, quicksort был незначительно быстрее).

Это уже показывает одну вещь: ответ на Ваши вопросы зависит сильно от алгоритма сортировки, который Вы используете. Если это будет иметь низкую производительность почти в отсортированных списках, вставление в правильном положении будет намного быстрее, чем добавление в конце и затем обращение он; и сортировка слиянием не могла бы быть никакой опцией для Вас, поскольку, возможно, требовалось бы слишком много внешней памяти, если список огромен. BTW я использовал пользовательскую реализацию сортировки слиянием, это только, использует 1/2 внешнего устройства хранения данных к наивной реализации (которому нужно столько же внешнего устройства хранения данных сколько сам размер массива).

, Если сортировка слиянием не является никакой опцией и quicksort, не никакая опция наверняка, лучшая альтернатива является, вероятно, пирамидальной сортировкой.

Мои результаты: Добавление новых элементов просто в конце и затем обращении массив было несколькими величинами быстрее, чем вставка их в правильном положении. Однако мой начальный массив имел 10 (отсортированных) элементов mio, и я добавлял другой (неотсортированный) mio. Таким образом, если Вы добавляете, что 10 элементов к массиву 10 mio, вставляя их правильно намного быстрее, чем обращение всего. Таким образом, ответ на Ваш вопрос также зависит от того, насколько большой (отсортированный) массив начальной буквы и сколько новых элементов Вы хотите добавить к нему.

5
задан Alex Reynolds 15 September 2009 в 22:09
поделиться

4 ответа

Вы не можете изменять содержимое пакета во время работы, у вас нет прав на запись в этот каталог. Я не уверен, что есть способ сделать именно то, что вы хотите.

6
ответ дан 14 December 2019 в 01:12
поделиться

Я знаю, что вы можете получить свой info.plist как NSDictionary через NSBundle со следующим:

NSDictionary* infoDictionary = [[NSBundle mainBundle] infoDictionary];

оттуда вы можете сделать mutableCopy из NSDictionary и задайте в нем значения. При выполнении запросов к ключам вы должны убедиться, что запрашиваете NSDictionary , а не ваш файл info.plist, но не должно быть сложно инкапсулировать все это в класс, который обрабатывает обе проблемы. для вас.

Что касается непосредственного изменения файла info.plist вашего приложения, там могут быть проблемы (например, если вы измените файл, подпись кода не удастся, и ваше приложение будет считаться поврежденным), хотя я не уверен в это.

3
ответ дан 14 December 2019 в 01:12
поделиться

Вы не можете изменить Info.plist.

0
ответ дан 14 December 2019 в 01:12
поделиться

Не думаю, что это сработает. [NSBundle mainBundle] имеет указатель на конкретный информационный словарь. Даже если вы возьмете мутирующую копию, NSBundle ничего не узнает о нашем новом портфолио. Кто-нибудь уже пытался?

0
ответ дан 14 December 2019 в 01:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: