誰かがこの問題の答えを見つけるのを手伝ってくれることを願っています. 数週間前にアップルにバグレポート (28684035) を提出しましたが、彼らはまだ私のレポートに応答していません。Apple フォーラムも役に立ちません。私のゲームは開発中で、SKTextureAtlas preloadWithCompletionHandler メソッドを呼び出すだけでプリロード時にクラッシュすることがあります。
詳細は下記をご覧ください。問題についてご不明な点がございましたら、お気軽に投稿してください。
概要: テスト プロジェクトを作成し、touchUpAtPoint に次のコードを追加するだけです。
SKTextureAtlas* atlas = [SKTextureAtlas atlasNamed:@"GlobalMap"];
[atlas preloadWithCompletionHandler:^{
}];
計測器を調べたところ、このメソッドが呼び出されるたびにメモリ リークが発生します。最終的にはクラッシュします。このリークを発見したのは、進行中のゲーム プロジェクトで、ゲームの開始時にいくつかのアトラスをプリロードしたためです。コードを XCODE 8.0 に更新し、iPhone を IOS 10.0 に更新すると、クラッシュし始めました。
再現する手順:
- テスト プロジェクトを作成する
- プロジェクトにアトラスを追加する
- preloadWithCompletionHandler コードを追加します。
- アプリを実行し、Instruments でメモリの割り当てとリークを監視する
- 画面に数回タッチします (または 1 回でも - リークが表示されます)。
バージョン: iOS 10.0.2 構成: iPhone 6