2015-06-21 5 views
-1

У меня проблема с моим приложением и CoreData. Я использую CoreData для сохранения пользовательской информации, и я долгое время искал, как правильно использовать данные ядра. Я нашел и узнал, как использовать, но проблема началась, когда я удалил приложение из симулятора IOS. Когда я сделал это, приложение заморозилось, и в консоли появятся следующие ошибки:NSRangeException Xcode

2015-06-20 23:20:23.141 AppName[1767:218797] *** Terminating   
    app due to uncaught exception 'NSRangeException', reason: '*** - 
    [__NSArrayI objectAtIndex:]: index 0 beyond bounds for empty array' 
    *** First throw call stack: 
    (
0 CoreFoundation      0x000000010a70ec65 __exceptionPreprocess + 165 
1 libobjc.A.dylib      0x000000010c279bb7 objc_exception_throw + 45 
2 CoreFoundation      0x000000010a60517e -[__NSArrayI objectAtIndex:] + 190 
3 YoutubeBillionaire     0x000000010a103df2 _TFC18YoutubeBillionaire14ViewController11viewDidLoadfS0_FT_T_ + 2562 
4 YoutubeBillionaire     0x000000010a1059f2 _TToFC18YoutubeBillionaire14ViewController11viewDidLoadfS0_FT_T_ + 34 
5 UIKit        0x000000010b0de210 -[UIViewController loadViewIfRequired] + 738 
6 UIKit        0x000000010b0de40e -[UIViewController view] + 27 
7 UIKit        0x000000010aff92c9 -[UIWindow addRootViewControllerViewIfPossible] + 58 
8 UIKit        0x000000010aff968f -[UIWindow _setHidden:forced:] + 247 
9 UIKit        0x000000010b005e21 -[UIWindow makeKeyAndVisible] + 42 
10 UIKit        0x000000010afa9457 -[UIApplication _callInitializationDelegatesForMainScene:transitionContext:] + 2732 
11 UIKit        0x000000010afac1de -[UIApplication _runWithMainScene:transitionContext:completion:] + 1349 
12 UIKit        0x000000010afab0d5 -[UIApplication workspaceDidEndTransaction:] + 179 
13 FrontBoardServices     0x000000010dd895e5 __31-[FBSSerialQueue performAsync:]_block_invoke_2 + 21 
14 CoreFoundation      0x000000010a64241c __CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ + 12 
15 CoreFoundation      0x000000010a638165 __CFRunLoopDoBlocks + 341 
16 CoreFoundation      0x000000010a637f25 __CFRunLoopRun + 2389 
17 CoreFoundation      0x000000010a637366 CFRunLoopRunSpecific + 470 
18 UIKit        0x000000010afaab42 -[UIApplication _run] + 413 
19 UIKit        0x000000010afad900 UIApplicationMain + 1282 
20 YoutubeBillionaire     0x000000010a1192e7 main + 135 
21 libdyld.dylib      0x000000010c9d1145 start + 1 
    ) 
    libc++abi.dylib: terminating with uncaught exception of type NSException 
    (lldb) 

Спасибо всем.

+0

Чтобы увидеть фактический оператор, вызывающий ошибку, добавьте точку останова исключения: из меню Mian Отладка: точки останова: создать точку останова исключения. Затем щелкните правой кнопкой мыши точку останова и добавьте действие: «po $ arg1». Запустите приложение, чтобы получить точку останова, и вы попадете на строку, которая вызывает исключение, и сообщение об ошибке будет находиться в консоли отладчика. – zaph

ответ

0

Ошибка довольно понятна; Вы пытаетесь получить доступ к значению в пустом массиве. Ваш запрос CoreData не должен возвращать никаких результатов. Перед попыткой доступа к элементам в нем убедитесь, что вы проверяете пустой массив. Если вы удалите приложение с вашего устройства/симулятора, он удалит все данные в CoreData, поэтому любой запрос вернет пустой массив.

+0

Спасибо! Это сработало! Я думал, что это так, и я установил строку, которую я не использую в CoreData, и что она работает! Большое спасибо: D –

Смежные вопросы