У меня есть странная проблема с исправлением для Tiny Wings. В моей игре я использую что-то вроде:
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults setFloat:musicVolume forKey:@"musicVolume"];
для сохранения некоторых настроек и таблицы рекордов. В конце игры, когда появляется экран игры на экране, игра сохраняет рекордные значения в стандартеUserDefaults. Он работает очень хорошо, пока игра не отображает UIAlertView следующим образом:
UIAlertView *alert = [[UIAlertView alloc] init];
[alert setTitle:@"Get ready!"];
[alert setDelegate:self];
[alert addButtonWithTitle:@"Ok"];
[alert show];
[alert release];
После того, как AlertView исчезнет всякий раз, когда игра сохранит somthing до standardUserDefaults, игра немного отстает (на некоторых устройствах в течение нескольких секунд). Это также происходит после того, как в игре используется UITextField для ввода имени игрока. В игре нет какого-либо отставания до того, как будет использован один из двух элементов UIKit, но после их использования игра задержится, пока я не перезапущу приложение. Я проанализировал проблему с Инструментами производительности, а инструмент "Активность ввода/вывода" показывает, что есть сотни "открытых чтений и закрытий" для доступа к
/System/Library/Frameworks/UIKit.framework/InputModeProperties.plist
что приводит к задержкам.
Я не знаю, что делать. Любые идеи?
Edit:
в форуме разработчиков Apple есть нить http://devforums.apple.com/message/424374#424374, где у кого-то одинаковая проблема, и кажется, что она появляется только с iOS 4.3. Я протестировал его, и задержки произошли только на моих 4.3 устройствах (не на 3,1 iPod Touch и 4.2 iPad).