iPhone SDK: вложенные папки внутри основного пакета

SHOW COLUMNS в mysql 5.1 (не 5.5) использует временную таблицу диска.

Поэтому в некоторых случаях его можно считать медленным. По крайней мере, он может увеличить ваше значение created_tmp_disk_tables. Представьте себе одну временную таблицу диска для каждого соединения или для каждого запроса на страницу.

SHOW COLUMNS на самом деле не так медленно, возможно, потому, что он использует кеш файловой системы. Phpmyadmin говорит ~ 0.5ms последовательно. Это ничто по сравнению с 500 мс-1000 мс на странице wordpress. Но все-таки есть моменты. Существует дисковая система, вы никогда не знаете, что происходит, когда сервер занят, кеш заполнен, hdd застопорился и т. Д.

Извлечение имен столбцов через SELECT * FROM ... LIMIT 1 было около ~ 0.1ms , и он также может использовать кеш запросов.

Итак, вот мой небольшой оптимизированный код для получения имен столбцов из таблицы без возможности использования столбцов показа:

function db_columns_ar($table)
{
//returns Array('col1name'=>'col1name','col2name'=>'col2name',...)
if(!$table) return Array();
if(!is_string($table)) return Array();

global $db_columns_ar_cache;
if(!empty($db_columns_ar_cache[$table]))
    return $db_columns_ar_cache[$table];


//IMPORTANT show columns creates a temp disk table
$cols=Array();
$row=db_row_ar($q1="SELECT * FROM `$table` LIMIT 1");
if($row)
    {
    foreach($row as $name=>$val)
        $cols[$name]=$name;
    }
else
    {
    $coldata=db_rows($q2="SHOW COLUMNS FROM `$table`");
    if($coldata)
        foreach($coldata as $row)
            $cols[$row->Field]=$row->Field;
    }
$db_columns_ar_cache[$table]=$cols;
//debugexit($q1,$q2,$row,$coldata,$cols);
return $cols;
}

Примечания :

  • Пока ваша первая строка не содержит мегабайтный диапазон данных, она должна работать нормально.
  • Названия функций db_rows и db_row_ar должны быть заменены вашим конкретным настройка базы данных.

10
задан user279778 7 March 2010 в 23:29
поделиться

3 ответа

Чтобы создать подпапки внутри пакета .app, вы должны установить флажок «Создавать ссылки на папки для любых добавленных папок», а не параметр по умолчанию «Рекурсивно создавать группы. для любых добавленных папок " Теперь в XCode импортированная папка отображается синим, а не желтым цветом. Соберите и работайте, и вы должны увидеть папки в вашем .app файле.

25
ответ дан 3 December 2019 в 16:29
поделиться

Прежде всего, папки, которые вы создаете в Xcode, представляют собой просто организационные структуры без каких-либо аналогов на уровне файловой системы. Другими словами, все папки, кроме папки «Классы», выравниваются на уровне файловой системы. Следовательно, даже если вы поместите файл изображения в следующее место в xcode, он все равно будет существовать на верхнем уровне файловой системы: f1 / f2 / f3 / f4 / f5 / image.png. Таким образом, в методе pathForResource не следует включать аргумент inDirectory.

Что касается второй проблемы, mac osx не распознает имена файлов с учетом регистра. Следовательно, f1 и F1 эквивалентны mac osx и будут ссылаться на один и тот же файл. В этом легко убедиться, выполнив следующие 2 команды в сеансе терминала:

touch f
touch F

вы заметите, что после этого существует только 1 файл: а именно f. Если поменять местами две команды, вы все равно получите один файл, но с именем F.

0
ответ дан 3 December 2019 в 16:29
поделиться

ennuikiller прав. Я думаю, вы можете организовать свои изображения через Finder в подпапке, а затем обновить местоположение изображения в XCode, щелкнув правой кнопкой мыши изображение и выбрав опцию «Получить информацию». Затем установите новый каталог.

Ура.

0
ответ дан 3 December 2019 в 16:29
поделиться
Другие вопросы по тегам:

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