TinyWingsのバグ修正に奇妙な問題があります。私のゲームでは、次のようなものを使用します。
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults setFloat:musicVolume forKey:@"musicVolume"];
いくつかの設定とハイスコアテーブルを保存するため。ゲームの終了時にゲームオーバー画面が表示されると、ゲームはハイスコアをstandardUserDefaultsに保存します。ゲームが次のようなUIAlertViewを表示するまで、これは非常にうまく機能します。
UIAlertView *alert = [[UIAlertView alloc] init];
[alert setTitle:@"Get ready!"];
[alert setDelegate:self];
[alert addButtonWithTitle:@"Ok"];
[alert show];
[alert release];
ゲームがstandardUserDefaultsに何かを保存するたびにAlertViewが消えた後、ゲームはしばらく遅れます(一部のデバイスでは数秒間)。これは、ゲームがプレーヤー名を入力するためにUITextFieldを使用した後にも発生します。2つのUIKit要素のいずれかが使用される前はゲームに遅れはありませんが、それらを使用した後は、アプリを再起動するまでゲームが遅れます。パフォーマンスツールの問題を分析しましたが、「I / Oアクティビティ」インスツルメントは、
/System/Library/Frameworks/UIKit.framework/InputModeProperties.plist
これが遅れの原因になります。
私は全く何をすべきか見当がつかない。何か案は?
編集:
アップルデベロッパフォーラムhttp://devforums.apple.com/message/424374#424374にスレッドがあり、誰かが同じ問題を抱えており、iOS4.3でのみ表示されるようです。私はそれをテストしましたが、ラグは私の4.3デバイスでのみ発生します(3.1 iPodTouchおよび4.2iPadでは発生しません)。