みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

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

投稿日時 - 2016-02-08 07:25:02

QNo.9124266

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

No.2です。

class AppDelegate: UIResponder, UIApplicationDelegate {
でそのエラーが発生する状況というのはよくわからないので厄介かもしれません。
(もしかするとエラー表示位置がずれているだけで、[Product]-[Clean]で一旦ビルドをクリアしてから再ビルドすると正しいエラー位置を表示するようになるかもしれません。)

いずれにしても、
http://blogios.stack3.net/archives/776
の「スタックトレース」で解説されてる呼び出し履歴を参照すれば、どのようにメソッドが呼ばれて停止したかがわかるので、それが調査のヒントになるかもしれません。

また、デバイスを縦から横にした時に発生するのであれば、
http://qiita.com/nomadmonad/items/e09639e0b31812e28d6d
で解説されているようなメソッドが動作した延長で問題が発生しているような気がするので、このあたりの処理にブレークポイントを仕掛けて、意図通り動作しているか確認すると何かわかるかもしれません。

コードを提示せずに質問されているので、これくらいしかわかりません。

投稿日時 - 2016-02-10 11:34:37

お礼

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

投稿日時 - 2016-03-19 11:44:15

ANo.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のブレークポイントを仕掛けて実行すれば問題の個所で止まるのですぐわかると思います。

投稿日時 - 2016-02-08 14:15:40

補足

教えていただいたように配列要素にnilを設定するケースがないか、All Exceptionsのブレークポイントを仕掛けて確認してみました。
この記事を参考に
http://qiita.com/makoto_kw/items/a4346cf5d8124ecd13ec

問題の個所で止まったのが、
class AppDelegate: UIResponder, UIApplicationDelegate {
この場所です。AppDelegateが呼ばれた時にエラーが発生してるのでしょうか?追加質問よろしくお願いします。

投稿日時 - 2016-02-09 17:38:38

ANo.1

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

投稿日時 - 2016-02-08 10:39:33

お礼

ありがとうございます。

投稿日時 - 2016-03-19 11:39:03

あなたにオススメの質問