• 締切済み

swiftについて教えてください。

写真のスライドショーのアプリを作っています。スライドショーの途中でデバイスを縦から横にすると、以下の警告が出てクラッシュします。 Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSPlaceholderArray initWithObjects:count:]: attempt to insert nil object from objects[0]' 調べるなかで、以下のサイトなどを見たのですが、NSPlaceholderArrayが何なのかなど、分からないまま、解決に至りませでした。 回答よろしくお願いします。 http://d.hatena.ne.jp/heppokose/touch/20111109/1320826022 http://cheesememo.blog39.fc2.com/blog-entry-114.html http://blog.dalt.me/193

みんなの回答

回答No.3

No.2です。 class AppDelegate: UIResponder, UIApplicationDelegate { でそのエラーが発生する状況というのはよくわからないので厄介かもしれません。 (もしかするとエラー表示位置がずれているだけで、[Product]-[Clean]で一旦ビルドをクリアしてから再ビルドすると正しいエラー位置を表示するようになるかもしれません。) いずれにしても、 http://blogios.stack3.net/archives/776 の「スタックトレース」で解説されてる呼び出し履歴を参照すれば、どのようにメソッドが呼ばれて停止したかがわかるので、それが調査のヒントになるかもしれません。 また、デバイスを縦から横にした時に発生するのであれば、 http://qiita.com/nomadmonad/items/e09639e0b31812e28d6d で解説されているようなメソッドが動作した延長で問題が発生しているような気がするので、このあたりの処理にブレークポイントを仕掛けて、意図通り動作しているか確認すると何かわかるかもしれません。 コードを提示せずに質問されているので、これくらいしかわかりません。

dkong
質問者

お礼

コードが長かったので提示できず申し訳ありませんでした。そんな質問への対応ありがとうございました。教えていただいたことを調べていろいろ試してみたのですが、警告が出てクラッシュします。

回答No.2

そのエラーメッセージ '*** -[__NSPlaceholderArray initWithObjects:count:]: attempt to insert nil object from objects[0]' は、Objective-Cの場合だと[NSArray arrayWithObject:obj]のobjがnilだった時に発生します。 swiftはオプショナル型が絡んでくるので同じエラーメッセージが出るケースは少ないと思いますが、 NSArrayおよび配列の初期化で配列要素にnilを設定するケースがないか確認してみてください。 Xcodeからアプリをデバッグ実行した場合でも再現するなら、All Exceptionsのブレークポイントを仕掛けて実行すれば問題の個所で止まるのですぐわかると思います。

dkong
質問者

補足

教えていただいたように配列要素にnilを設定するケースがないか、All Exceptionsのブレークポイントを仕掛けて確認してみました。 この記事を参考に http://qiita.com/makoto_kw/items/a4346cf5d8124ecd13ec 問題の個所で止まったのが、 class AppDelegate: UIResponder, UIApplicationDelegate { この場所です。AppDelegateが呼ばれた時にエラーが発生してるのでしょうか?追加質問よろしくお願いします。

  • t_hirai
  • ベストアンサー率28% (222/788)
回答No.1

NSInvalidArgumentExceptionってことですから、引数がおかしく、 nitWithObjects:countってことは引数の数がおかしいということだと思います。 これ以上は、ソースを掲載してもらわないと分かりません。

dkong
質問者

お礼

ありがとうございます。

関連するQ&A