2017-10-18 19 views
0

アイデアを持っている可能性があるすべてのあなたのための簡単な質問:UICollectionView _createPreparedCellForItemAtIndexPath:withLayoutAttributes:applyAttributes:とviewWillAppear:順序

私は最近、私のアプリの上にバグに遭遇し、それは少し疑問を提起しています。

バグは、まだ設定されていない配列にアクセスしようとしているコードによって引き起こされました。 ここで面白いのは、同じコードがiPad Airで絶対にうまく動作し、iPad Proでクラッシュしたことです。

実際、コントローラのcollectionView:cellForItemAtIndexPath:メソッドでアレイにアクセスしようとしましたが、アレイは同じコントローラのviewWillAppear:メソッドで初期化されました。

私が試したデバイスでは、collectionView:cellForItemAtIndexPath:メソッドはいつもviewWillAppear:の後に呼び出されましたが、iPad Proではこれは逆です。

私はこの問題を簡単に修正しましたが、iPad Proのサイクルが他のものと異なる理由はまだ分かりません。誰かがそれについての手掛かりを持っていますか?

(私はObjective-Cの、iOSの11.0によ)

答えて

0

変更collectionView:

if (array has data || data is downloading) { show activity indicator } else { show data }

リロードコレクションビュー時にデータをロード

+0

うんを、以下のような条件のためのcellForItemAtIndexPath方法ありがとう、私は記事で言ったように、私はすでにそれを修正している、ここで実際の質問は、異なるデバイスで異なる順序です。 – JeanBagarre

+0

そのことについてはわかりません。 @JeanBagarre – ahmed

+0

@ahmedについて何か分かりませんか? – JeanBagarre