質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

3回答

305閲覧

Xcodeに出力されるログについて

yamataku29

総合スコア51

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2017/07/01 00:09

iOSアプリ制作をしております。

ある多次元配列をprintメソッドで出力した際に、①ログに出力される配列のプロパティと、②配列の変数にマウスオンした時のプロパティが異なっている。という事象が起きています(下記キャプチャ画像)
イメージ説明

なぜ①と②のプロパティが異なって表示されるのでしょうか?

もし原因分かる方いらっしゃればアドバイスいただけると幸いです。

よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

なぜ①と②のプロパティが異なって表示されるのでしょうか?

の回答としてはizknさんのおっしゃるとおりなので補足程度に。

removeは指定したindexの要素を削除してtoDaysMealArray自身の値が変化させます。エラーになる前にremoveを2回行なっているのでエラーになった時点では元々4つあったtoDaysMealArrayの中身は2つになっています。カーソルを合わせて表示された2 valuesはこのことを指しています。

具体的には下記のように変化していってます。(selectedCellsPathは0のようなので)

①元々の配列

toDaysMealArray // [[34, 24], [19, 9], [49, 34], [320, 250]]

②一回目のremove後

toDaysMealArray.remove(at: [0][0]) // [[19, 9], [49, 34], [320, 250]]

③二回目のremove後(削除されている要素が2つ目の要素[49, 34]ということに注意)

toDaysMealArray.remove(at: [1][0]) // [[19, 9], [320, 250]]

④三回目のremove時、2つしかない要素の3個目を削除しようとしてエラー

toDaysMealArray.remove(at: [2][0]) // error

やりたかったことが具体的に何かはわかりませんが、要素を一個ずつ消したかったのであれば下記のようにすれば先頭から一個ずつされます(何をやりたいかで配列の要素の削除の仕方はもっと他にありますがとりあえず質問中にあったやり方でやるとすればの例です)。

toDaysMealArray.remove(at: [0][0]) toDaysMealArray.remove(at: [0][0]) toDaysMealArray.remove(at: [0][0]) toDaysMealArray.remove(at: [0][0])

投稿2017/07/01 10:01

jollyjoester

総合スコア1585

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yamataku29

2017/07/02 02:57

ありがとうございます!よく理解できました! removeメソッドの引数の指定方法を勘違いしていたようです。 修正して再度試してみます。
guest

0

ベストアンサー

1はprint("栄養配列は\(toDaysMealArray)")が実行された時の状態

2は以下が発生した時の状態

Thread 1: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)

その状態で、どの行のtoDaysMealArrayをマウスオンしようと、EXC_BAD_INSTRUCTION発生時の値しか見れません。
その時々の値を参照したいなら、ブレークポイントを設定してください。
行番号の箇所をクリックすると、その行にプレークポイントが設定できます。
デバッガの使い方は、以下を参考にしてください。

Xcodeの概要: デバッガを使う

投稿2017/07/01 01:44

izkn

総合スコア1698

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yamataku29

2017/07/02 02:56

ありがとうございます! マウスオン時は最終的な状態を表示する用になっているのですね。ありがとうございます! 大変参考になりました。
guest

0

配列の配列ですよね
②で表示されるポップアップ内の[0]などの左の三角をクリックすれば中身が表示されると思いますが...

投稿2017/07/01 02:50

編集2017/07/01 10:56
MasakiHori

総合スコア3384

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yamataku29

2017/07/02 02:56

はい!中身は見たのですが、配列内にある配列の個数が自体が4つであるとという想定だったので、胃若干詰まっておりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問