問題タブ [nsrangeexception]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
581 参照

core-data - コア データ移行後の NSRangeException

新しい Core Data モデル バージョンをアプリに追加した後、軽量の移行を実行しましたが、明らかに成功しました。移行されたファイルは正常にロードされましたが、特定のリレーションシップを介して属性にアクセスしようとすると、アプリがNSRangeException: '*** -[__NSArrayM objectAtIndex:]: index 4294967295 beyond bounds [0 .. 35]'. この関係は、移行前は正常に機能していました。ここの他の投稿から、4294967295 が実際-1には .そのテーブル)。

質問:

私の質問は次のとおりです。発生しているエラーと以下で行ったトラブルシューティングに基づいて、軽量の移行を通過する可能性のあるスキーマ変更の種類はありますが、途中でデータが破損し、例外が発生しますか? 問題を分離または回避するために、いくつかのバージョンで移行を小さなチャンクに分割しようとしていますが、障害の可能性がある特定のスキーマ変更に集中できるとよいでしょう。

失敗:

「myobject」の次のコードでエラーが発生します。

object2 の関係は 1 対 1 であり、どちらの方法でもオプションではなく、データ モデル間で前方関係も逆関係も変更されていません。textエラーが発生したときawakeFromFetchに object2 に到達していないため、この属性は関連していない可能性があります。上記のステートメントの前に変数に代入[self object2]すると、代入は成功し、data: <fault>.

データベース:

sqlite3 のデータベースを見ると、次のことがわかります。

  1. 順方向および逆方向の関係のインデックス値は、各テーブルで正しいように見えます。
  2. object2 テーブルには、移行前の 1 つではなく、逆の関係のための 2 つの列があります (以前のように、すべての行で空であるZMYOBJECT追加の )。Z2_MYOBJECTこの列を説明する他の関係は追加されていません。
  3. 表ではZ_PRIMARYKEY、移行後のすべてのエントリが に表示-1されますZ_MAXが、移行前は、空のテーブルにはゼロが表示され、入力されたテーブルには最大行数が表示されます。適切な値に手動で更新Z_MAXしても、例外は解決しませんでした。すべてのZ_SUPER値が正しかった。

マッピング モデルをセットアップして、自動マッピングに問題があるかどうかを確認しましたが、すべて問題ないように見えました。

全体的なスキーマの変更:

ソース バージョンのデータ モデルには 14 個のエンティティがあり、そのうち 4 個だけがデータを取り込まれていました (アプリはまだ開発中です)。7 つはトップレベルのエンティティで、7 つはトップレベルのエンティティの 3 つのサブエンティティでした。

データ モデルのターゲット バージョンでは、最上位エンティティとサブエンティティの 22 個のエンティティが追加され、既存のエンティティに追加されたものを含む数十のリレーションシップが含まれていました。

一部の属性と関係が既存のエンティティから削除され、その他が追加されました。データ型や関係設定は変更されておらず、属性や関係の名前も変更されておらず、特別なマッピングも必要ありませんでした。

更新 (2012 年 2 月 25 日): 新しい中間モデルの作業を開始したときに、多くのエンティティのクラス (representedClassName) を NSManagedObject から NSManagedObject サブクラスに変更したことを思い出しましたが、クラス ファイルは生成していませんでした。 . それが問題を引き起こすとは思いませんでした。実際、すべてのクラス ファイルを作成しても例外は解決しませんでした。モデル間の別の変更点として、それを指摘したかっただけです。

結論:

これは大雑把な推測ですが、36 個のエンティティ数が偶然ではない場合、"myobject" が "object2" で失敗しようとすると、テーブルの有効な参照がなく、テーブル番号 -1 をロードしようとしているようです。 、例外を引き起こします。ただし、単純な割り当てが成功したという事実は、[self object2]その結論とは一致しません。

何か案は?

0 投票する
1 に答える
317 参照

objective-c - NSRangeException エラー... NSDictionary、NSArray、UISearchBar

私はObjective Cを初めて使用し、しばらく問題を抱えていました。回答を調べたり、チュートリアルを見たりしましたが、問題の解決策を見つけることができませんでした。多分それは私の顔の前にあり、私はそれを見ていません...それは私のUISearchバーのNSRangeと関係があると思います。しかし、私は 100% 確実ではありません。

国の辞書のキーを持つ配列を検索しようとしています。いくつかの NSLog を設定しました。キーを保存するために設定した配列にキーが入っていることがわかり、以下のエラーが表示されます。 .

これについての私の理解では、countryKeys は 5 であるため、インデックス 4 が存在するはずです。そうではありませんか? しかし、それは 0 .. 3 を示しています。これが、NSRange を間違って使用していると考えている理由です。これまでにいくつかの UISearchBar と For ループのチュートリアルを見てきましたが、For ループを理解しているので、NSRange を理解する必要があると思います。

私の思考過程や私が言及したことを理解していない場合はお知らせください..

-

0 投票する
1 に答える
1582 参照

objective-c - キャッチされない例外「NSRangeException」のため、アプリを終了します。[__NSArrayM objectAtIndex:]: 境界を超えたインデックス 33 [0 .. 32]'

私はこの ImportViewController.m を持っています

サーバーのxmlから名前を抽出してロードしています。要素の総数は 33 です。

エラー: キャッチされていない例外 'NSRangeException' が原因でアプリを終了しています

0 投票する
1 に答える
2002 参照

ios - attributedTextの設定、NSRangeExceptionエラー

選択を介してUITextビューの属性付きテキストプロパティを設定しようとしています。ほとんど動作します。以下の赤いフォントの色でテキストを設定するアクション。これは時々機能しますが、多くの場合エラーが発生します。

キャッチされなかった例外によるアプリの終了'NSRangeException'、理由:'NSMutableRLEArray objectAtIndex:effectiveRange::範囲外'

これは、選択した範囲で示されるよりも多くの文字がテキストビューにあるように見える場合でも発生します。

p1とp2は、選択したテキストの開始と終了です。これらは以下のコードで生成され、期待どおりに機能しているようです。

編集:@borrrdenのコメントを読んだ後、問題を修正しました。代わりにNSMakeRange(p1,p2)]を使用してNSMakeRange(p1,p2-p1)]います。

0 投票する
2 に答える
179 参照

iphone - NSRangeException がアプリをランダムにクラッシュさせる

  1. でアプリがランダムにクラッシュし_storeArrayます。
  2. viewDidLoad には[self loadUrl]、xml ファイルを解析してから辞書を追加するメソッドがあります[_storeArray addObject:dictionary]
  3. 何らかの理由でカルーセル reusingView が最初に呼び出され、次に が呼び出されると、クラッシュが発生し[self loadUrl]ます。
  4. を追加しましたif(_storeArray)が、それでもクラッシュします。

これは例外です:

これはコードです:

0 投票する
1 に答える
84 参照

xcode - 文字列を分割した後のXcode 4 NSRangeExceptionエラー

文字列を分割して変数に分割しようとしていますが、次のエラーが発生しています:

* キャッチされていない例外 'NSRangeException' が原因でアプリを終了しています。理由: '* -[__NSArrayM objectAtIndex:]: 境界を超えたインデックス 2 [0 .. 1]'

コード:

何か案は?ありがとう!

0 投票する
1 に答える
1294 参照

objective-c - セクション [indexPath 行] を含む TableView の NSRangeException が範囲外になる

コンソールに出力されるエラーは次のとおりです。

プログラムは正確に次の場所で中断します。

cellForRowAtIndexPath:メソッド内から

すべてのテーブルビュー メソッドは次のとおりです。

コンソールからいくつかのコマンドを実行した後:

po [モデル数]

po (int)[indexPath 行]

[models count] が 2 に等しく、[indexPath 行] も 2 に等しい場合に壊れていることがわかります。テーブルのインデックスは 0 から始まるため、2 は実際には 3 であるため、もちろん範囲外になります。

問題は、なぜこれが起こっているのかということです。テーブルの値を切り替えた後、すでにテーブルデータをリロードしており、セクションごとのすべての行数を調べて数えたところ、正しく表示されます。では、他になぜこれが起こっているのでしょうか? 奇妙なことに、テーブルを下にスクロールすると cellForRowAtIndexPath:(NSIndexPath *)indexPath が再呼び出しされた後にこの中断が発生します。

これは、Xcode 4.6.1 のすべてのシミュレーター ios 5.0 - ios 6.1 内で発生します。

**編集:

これはカリフォルニア州とウィスコンシン州でのみ発生することを付け加えておきます。これは絞り込みに役立つと思いましたが、データベースを確認したところ、郡とモデルの数はデバッガーで返されたものと一致しています。

0 投票する
1 に答える
193 参照

ios - textField/textView の NSRangeException が FirstResponder になる

ビューに 2 つの textFields と 1 つの textView があります。textFields の 1 つだけがデリゲートとして vc を持っています。3 つのいずれかが firstResponder になると (プログラムによって、またはタップされることによって)、アプリがクラッシュします。エラーは次のとおりです。

サブビューとしてプログラムで追加する tableView がありますが、h ファイルと m ファイルから tableView のすべてのトレースを削除しても、tableView を参照するエラーが発生します。この vc は tableViewController からプッシュされますが、それが参照されている可能性がありますか?

6.1 と 5.1 を使用する iPhone と iPad の両方のシミュレーターでクラッシュし、6.1.3 を使用する iPhone でもクラッシュしますが、6.1.3 を実行している iPad では問題なく動作します。

何か案は?

ありがとう