アプリを iOS5 から iOS6 に移行しています。アプリの一部で、ユーザーが画面下部の uitabbarviewcontroller からタブを選択すると、uitableview に移動します。ユーザーがタブを選択すると、コードは Web サービスを呼び出し、CoreData と共に保存され、デバイス自体に保持されているデータに添付されている最新の情報を一覧表示します。
とにかく、私はcellForRowAtIndexPath
Webサービスの応答から文字列を作成し、セルのdetailTextLabelのテキストプロパティをこの文字列の値に設定します。
これは iOS5 では問題になりませんでした。メソッドでこの文字列を使用しようとするとcellForRowAtIndexPath
、コンパイラは文字列が実際にはNSIndexPath
変数であると考えているようです。
たとえば、文字列の長さを確認しようとすると、アプリがクラッシュし、次のようなメッセージが表示されます。
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '+[NSIndexPath length]: unrecognized selector sent to class 0x396cae64'
同様に、そのメソッドの文字列でやりたいことは他にもあります。
その他のいくつかのこと:
- シミュレーターとデバイスの両方で発生します。
- 文字列自体とは何の関係もありません。つまり、iOS5 がまだインストールされているデバイスでも問題なく動作します。また、detailTextLabel.text を、文字列の設定に使用している値に設定できます。文字列を明示的に使用することはできません。
他の誰かがこれに出くわしましたか? もしそうなら、あなたの解決策は何でしたか? グーグルで検索しましたが、何も表示されませんでした。