問題タブ [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 投票する
1 に答える
232 参照

ios - NSFetchRequest を変更すると、空の配列の境界を超えて NSRangeException インデックス 0 が生成されます

私の最新の iOS アプリの更新では、DB 関連のクラッシュが大幅に増加しています。DB でフェッチを実行するほぼすべてのコード行でクラッシュが発生しています。

例外: NSRangeException
* -[__NSArrayM objectAtIndex:]: index 0 beyond bounds for empty array

スタックトレース:

CoreFoundation 0x32c982a3 __exceptionPreprocess + 163 1
libobjc.A.dylib 0x3a93d97f objc_exception_throw + 31 2
CoreFoundation 0x32be3b75 -[__NSArrayM objectAtIndex:] + 165 3
CoreData 0x32a4227f -[NSSQLCore _newRowsForFetchPlan:selectedBy:withArgument:] + 2007 4
CoreData 0x32a3b089 -[NSSQLCore newRowsForFetchPlan:] + 313 5
CoreData 0x32a3a73f -[NSSQLCore objectsForFetchRequest:inContext:] + 683 6
CoreData 0x32a3a205 -[NSSQLCore executeRequest:withContext:error:] + 469 7
CoreData 0x32a3961d -[NSPersistentStoreCoordinator executeRequest:withContext:error:] + 1645 8
CoreData 0x32a37f17 -[NSManagedObjectContext executeFetchRequest:error:] + 647 9
MyApp 0x000516b7 +[DBQuery searchObjectsWithEntityName:::::] + 211 10
MyApp 0x000515a1 +[DBQuery syncData] + 113 11
MyApp 0x0006a7f7 __14+[MyAppSync sync]_block_invoke + 39 12
libdispatch.dylib 0x3ad5511f _dispatch_call_block_and_release + 11 13
libdispatch.dylib 0x3ad63259 _dispatch_root_queue_drain + 261 14
libdispatch.dylib 0x3ad633b9 _dispatch_worker_thread2 + 85 15
libsystem_c.dylib 0x3ad89a11 _pthread_wqthread + 361 16
libsystem_c.dylib 0x3ad898a4 start_wqthread + 8

コードの犯人行は、私の NSFetchRequest の 2 行の変更を追加することに関連している可能性があるようです。

+ (NSFetchRequest*) getFetchRequestForEntityName:(NSString*)entityName :(NSPredicate*)predicate :(NSString*)sortKey :(BOOL)sortAscending :(int)limit :(NSManagedObjectContext*)managedObjectContext { NSFetchRequest *request = [[NSFetchRequest alloc] init]; NSEntityDescription *entity = [NSEntityDescription entityForName:entityName inManagedObjectContext:managedObjectContext]; [request setEntity:entity];

//* NEW IN LATEST RELEASE **//

//**************//

}

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

objective-c - 範囲クラッシュのある部分文字列

私は奇妙な問題を抱えています。次の部分文字列コードはクラッシュします

範囲は境界内にあると思いますが、それでもクラッシュします。なぜこれが起こっているのですか?以下は、それが示したエラーです。

* Terminating app due to uncaught exception 'NSRangeException', reason: '-[__NSCFConstantString substringWithRange:]: Range or index out of bounds' * First throw call stack: (0x1c92012 0x10cfe7e 0x1c91deb 0x1c6aaa4 0x2bbc 0xf51c7 0xf5232 0x443d5 0x4476f 0x44905 0x4d917 0x27c5 0x11157 0x11747 0x1294b 0x23cb5 0x24beb 0x16698 0x1beddf9 0x1bedad0 0x1c07bf5 0x1c07962 0x1c38bb6 0x1c37f44 0x1c37e1b 0x1217a 0x13ffc 0x24fd 0x2425) libc++abi.dylib と呼ばれる例外をスローします: libc++abi.dylib を終了します。

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

objective-c - Obj-C/Cocoa [string characterAtIndex:i] が NSRangeException を返しているかどうかを確認する方法は?

forループがあります。

ドキュメントから、 characterAtIndex: は通常「unichar」型の値を返すことを理解していますが、インデックスが範囲外の場合は NSRangeException が返されます。

注意して、[string characterAtIndex:i] が NSRangeException を返しているかどうかを確認してから、戻り値を currentCharacter に割り当てます。

私が最初に試したのはこれでした:

...しかし、私の理解では、メソッドは通常intを返し、それを文字列であるNSRangeExceptionと比較しているため、機能しません。

[string characterAtIndex:i] isKindOfClass:...] について考えましたが、[string characterAtIndex:i] は NSObject ではないため、機能しません。では、例外をテストするにはどうすればよいでしょうか。

例外をテストする必要がありますか? 返される値がプリミティブである場合と NSObject である場合がある場合、その型をテストするにはどうすればよいですか?

0 投票する
0 に答える
267 参照

objective-c - オブジェクトを NSMutableArray に追加する際の NSRangeException

iOS アプリケーションで検索バーのロジックをプログラミングしています。NSFetchRequest から返されたエンティティを含む 1 つの NSArray "results" と、最初の配列から返されたオブジェクトを追加する空の NSMutableArray "resultados" があります。

コードは次のとおりです。

この行が実行されるたびに:

次の例外が発生します。

addObjectsFromArray メソッドを使用して配列の境界を超える方法がわかりません。実際、この命令を本質的に同じことを行う次のデバッグ コードに置き換えると、すべてのオブジェクトを追加していることがわかりますが、最後のオブジェクトを追加するときは、結果が返されるオブジェクトの数に関係なく、常に例外がスローされます。

私は多くのバリエーションを試しましたが、何が起こっているのかわかりません。

よろしくお願いします。

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

objective-c - -[NSMutableArray removeAllObjects] および -[NSMutableArray addObject:] は NSRangeException をスローします

最初のクラッシュは removeAllObjects の呼び出しが原因で、2 番目のクラッシュは addObject が原因でした。

0 投票する
0 に答える
2644 参照

uilabel - NSRangeException 範囲外エラー

ラベルの属性テキストを設定していますが、この奇妙なエラーが発生しています: キャッチされない例外 'NSRangeException' が原因でアプリを終了しています。理由: 'NSMutableRLEArray replaceObjectsInRange:withObject:length:: Out of bounds'. このエラーは今まで見たことがないので、修正方法がわかりません。クラッシュの原因となっているコードは次のとおりです。

例外ブレークポイントを設定しましたが、行でクラッシュして[attributedString setAttributes:attrs range:nameRange];います。これを修正する方法を知っている人はいますか?

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

ios - キャッチされていない例外 'NSRangeException' が原因でアプリを終了しています。

上記は私のスクリプトです。スクリプトに何か問題があり、解決策が見つかりません。