Моя проблема устранена, выполнив следующую команду:
sudo apt-get install libmysql++-dev
Вы следовали моему ответу на этот другой вопрос?
Я провожу некоторые тесты (перезагружаю свои объекты) и вижу странное прерывистое поведение. Это определенно сортирует их правильно (с 'A' сразу после 'A', но до 'Ä') иногда. Иногда это ставит символы вне A-Z все в конец (после 'Z'), хотя я не делал ничего особенного.
Также я заметил, что 'Å' нарисовано правильно, если вы вернете его строчную форму. Пытались ли вы переопределить разделIndexTitleForSectionName:
, чтобы сохранить порядок, но изменить отрисованный символ?
Посмотрите, что вам нужно: Оборонительные попытки AJAX и AJAX в jQuery .
В основном в обработчике ошибок, вы можете сделать $ .ajax (это);
$.ajax({
url : 'timeOutPage.html',
type : 'get',
timeout : 20000,
error : function(xhr, textStatus, errorThrown ) {
if (textStatus == 'timeout') {
$.ajax(this);
return;
}
}
});
У связанной статьи есть более глубокий пример с ограничением повторных попыток и т.д.... как и в большинстве jQuery, вы можете почти скопировать/вставить их пример, чтобы начать.
-121--4746372-Я сделал твит, как меню, нет полного кода, но я вел блог об этом. Надеюсь, это поможет!
http://petersteinberger.com/2010/01/tweetie-like-swipe-menu-for-iphone-apps/
-121--4197167-Поэтому я не мог отпустить эту и нашел следующее:
Что вам нужно сделать в этом случае называется 'Юникод Нормализация Форма D'. Более подробно это объясняется в http://unicode.org/reports/tr15/ (предупреждение, длинный и сухой документ)
Вот функция, которая выполняет разложение, а затем отфильтровывает все диакритические знаки. Вы можете использовать это, чтобы конвертировать Äpple в Apple, а затем использовать первую букву для построения индекса.
- (NSString*) decomposeAndFilterString: (NSString*) string
{
NSMutableString *decomposedString = [[string decomposedStringWithCanonicalMapping] mutableCopy];
NSCharacterSet *nonBaseSet = [NSCharacterSet nonBaseCharacterSet];
NSRange range = NSMakeRange([decomposedString length], 0);
while (range.location > 0) {
range = [decomposedString rangeOfCharacterFromSet:nonBaseSet
options:NSBackwardsSearch range:NSMakeRange(0, range.location)];
if (range.length == 0) {
break;
}
[decomposedString deleteCharactersInRange:range];
}
return [decomposedString autorelease];
}
(Я нашел этот код в списке рассылки, забыл источник, но взял его и немного исправил)
Когда я сталкиваюсь с подобной ситуацией, первое, что я спрашиваю себя, - это «что делает Apple».
В качестве эксперимента я просто добавил «Joe Äpple» в свою адресную книгу iPhone, и он появился под простой буквой A. Я думаю, что в этом есть большой смысл.
Поэтому вместо того, чтобы бросать их под Z или Ä, вы должны сделать то же самое. Должен быть какой-то способ получить «базовую» букву символа Юникода для группировки.
Решали ли вы эту проблему?
Мне удалось добиться правильного отображения индекса заголовка раздела, реализовав sectionIndexTitlesForTableView: чтобы создать свой собственный массив заголовков разделов:
- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView {
NSMutableArray *indexKeys = [NSMutableArray arrayWithCapacity:30];
NSArray *fetchedResults = [fetchedResultsController fetchedObjects];
NSString *currKey = @"DEFAULT";
for (NSManagedObject *managedObject in fetchedResults) {
NSString *indexKey = [managedObject valueForKey:@"indexKey"];
if (![indexKey isEqualToString:currKey]) {
[indexKeys addObject:indexKey];
currKey = indexKey;
}
}
return indexKeys;
}
Здесь indexKey - это первая буква имени.
Однако это создает одну из двух проблем в sectionForSectionIndexTitle: вместо этого:
Если я просто возвращаю индекс для раздела, это теперь несортированный индекс и больше не соответствует порядку сортировки в fetchResultController:
- (NSInteger)tableView:(UITableView *)tableView sectionForSectionIndexTitle:(NSString *)title atIndex:(NSInteger)index {
return index;
}
В качестве альтернативы , Если я передаю вызов fetchedResultsController, он прерывается для заголовков индексов, не относящихся к США, потому что это больше не странные символы, используемые в fetchedResultsController:
- (NSInteger)tableView:(UITableView *)tableView sectionForSectionIndexTitle:(NSString *)title atIndex:(NSInteger)index {
return [fetchedResultsController sectionForSectionIndexTitle:title atIndex:index];
}
Последний код генерирует ошибку следующего типа при переходе к " Ø "заголовок индекса:
Завершение работы приложения из-за неперехваченного исключения 'NSInternalInconsistencyException', причина: 'Заголовок индекса на 24 не равен' Ø '»
Обходной путь для этого - преобразовать оскорбительные символы обратно в их странные selves:
- (NSInteger)tableView:(UITableView *)tableView sectionForSectionIndexTitle:(NSString *)title atIndex:(NSInteger)index {
if ([title isEqualToString:@"Æ"]) {
title = @"\u2206";
} else if ([title isEqualToString:@"Ø"]) {
title = @"\u0178";
} else if ([title isEqualToString:@"Å"]) {
title = @"\u2248";
}
return [fetchedResultsController sectionForSectionIndexTitle:title atIndex:index];
}
Вы можете найти значения Unicode в отладчике с помощью действия «Распечатать описание в консоль».
Однако хорошим решением было бы выяснить, почему происходит это странное кодирование, и предотвратить его.
У меня возникла та же проблема, о которой говорилось в исходном вопросе, т. Е. Расширенные символы (за пределами страницы 0 Unicode) не отображаются должным образом в строке индекса.
Хотя мне кажется, что я скармливаю NSFetchedResultsController правильные одиночные строки символов Юникода, взамен я получаю доступ к свойству sectionIndexTitles, это те же самые символы, у которых старший байт установлен в 0; например, символ \ u30a2 (БУКВА А КАТАКАНА) становится \ u00a2 (ЦЕНТРАЛЬНЫЙ ЗНАК).
Я не уверен, является ли это ошибкой в методе sectionIndexTitleForSectionName: NSFetchedResultsController или моей собственной ошибкой где-то еще, однако мой обходной путь состоит в том, чтобы переопределить ее и выполнить то, что говорится в документации, внутренне:
- (NSString *)sectionIndexTitleForSectionName:(NSString *)sectionName
{
NSString *outName;
if ( [sectionName length] )
outName = [[sectionName substringToIndex:1] uppercaseString];
else
outName = [super sectionIndexTitleForSectionName:sectionName];
return outName;
}
Это дает ожидаемый результат.
Просто добавив это в мой контроллер, я решил исходную проблему
- (NSString *)controller:(NSFetchedResultsController *)controller sectionIndexTitleForSectionName:(NSString *)sectionName {
return sectionName;}
Å, Ä и Ö отображаются правильно в списке