問題タブ [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.
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 **//
//**************//
}
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 を終了します。
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 である場合がある場合、その型をテストするにはどうすればよいですか?
objective-c - オブジェクトを NSMutableArray に追加する際の NSRangeException
iOS アプリケーションで検索バーのロジックをプログラミングしています。NSFetchRequest から返されたエンティティを含む 1 つの NSArray "results" と、最初の配列から返されたオブジェクトを追加する空の NSMutableArray "resultados" があります。
コードは次のとおりです。
この行が実行されるたびに:
次の例外が発生します。
addObjectsFromArray メソッドを使用して配列の境界を超える方法がわかりません。実際、この命令を本質的に同じことを行う次のデバッグ コードに置き換えると、すべてのオブジェクトを追加していることがわかりますが、最後のオブジェクトを追加するときは、結果が返されるオブジェクトの数に関係なく、常に例外がスローされます。
私は多くのバリエーションを試しましたが、何が起こっているのかわかりません。
よろしくお願いします。
objective-c - -[NSMutableArray removeAllObjects] および -[NSMutableArray addObject:] は NSRangeException をスローします
最初のクラッシュは removeAllObjects の呼び出しが原因で、2 番目のクラッシュは addObject が原因でした。
と
uilabel - NSRangeException 範囲外エラー
ラベルの属性テキストを設定していますが、この奇妙なエラーが発生しています: キャッチされない例外 'NSRangeException' が原因でアプリを終了しています。理由: 'NSMutableRLEArray replaceObjectsInRange:withObject:length:: Out of bounds'. このエラーは今まで見たことがないので、修正方法がわかりません。クラッシュの原因となっているコードは次のとおりです。
例外ブレークポイントを設定しましたが、行でクラッシュして[attributedString setAttributes:attrs range:nameRange];
います。これを修正する方法を知っている人はいますか?
ios - キャッチされていない例外 'NSRangeException' が原因でアプリを終了しています。
上記は私のスクリプトです。スクリプトに何か問題があり、解決策が見つかりません。