2016-11-22 16 views
0

Я использую следующий код для отправки данных из одного UITableViewController в UIViewController, но он по какой-то причине сбой, что я не понимаю, почему нет значений NIL/NULL. пожалуйста, помогите мне объяснить, что вызывает крах.Сбой при сбое при сбое при создании NSManagedObject, но почему?

Это код в вопросе

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 
if ([[segue identifier] isEqualToString:@"updateItem"]) { 
     NSManagedObject *selectedItem = [self.pimItems objectAtIndex:[[self.tableView indexPathForSelectedRow] row]]; 
     PimItemDetailView *destViewController = segue.destinationViewController; 
    if([NWTillHelper isDebug] == 1) { 
     NSLog(@"PimItemListView:prepareForSegue:selectedItem holds %@", selectedItem); 
     NSLog(@"PimItemListView:prepareForSegue:destViewController holds %@", destViewController); 
    } 
     destViewController.pimItem = selectedItem; 
    } 
} 

он падает ровно на эту строку

destViewController.pimItem = selectedItem; 

В отладка говорит мне, что я, не имея какой-либо NIL/NULL значения

2016-11-22 18:47:05.043 NWMobileTill[836:10726] PimItemListView:prepareForSegue:selectedItem holds <TillData: 0x6080002c3bf0> (entity: TillData; id: 0xd0000000000c0002 <x-coredata:/ 
    colorCode = 95; 
    companyId = "BE_HM"; 
    discountable = 1; 
    exchangeable = 1; 
    itemId = 101064025138012; 
    languageCode = eng; 
    noos14 = "09258385254957,09258389874953"; 
    sizeCode = "163-012"; 
    status = 1; 
    taxGroup = 1; 
    taxRegion = BE; 
    tradeItemDesc = "Jersey basic"; 
    withTax = 1; 
}) 
2016-11-22 18:47:05.043 NWMobileTill[836:10726] PimItemListView:prepareForSegue:destViewController holds <PimItemDetailView: 0x7f81a1e48050> 

The entire crash message is as follows, any help much appreciated. 

2016-11-22 18:47:05.064 NWMobileTill[836:10726] -[__NSCFNumber rangeOfCharacterFromSet:]: unrecognized selector sent to instance 0xb000000000000011 
2016-11-22 18:47:05.074 NWMobileTill[836:10726] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFNumber rangeOfCharacterFromSet:]: unrecognized selector sent to instance 0xb000000000000011' 
*** First throw call stack: 
(
    0 CoreFoundation      0x000000010167234b __exceptionPreprocess + 171 
    1 libobjc.A.dylib      0x0000000100cb621e objc_exception_throw + 48 
    2 CoreFoundation      0x00000001016e1f34 -[NSObject(NSObject) doesNotRecognizeSelector:] + 132 
    3 CoreFoundation      0x00000001015f7c15 ___forwarding___ + 1013 
    4 CoreFoundation      0x00000001015f7798 _CF_forwarding_prep_0 + 120 
    5 UIKit        0x00000001025b37c7 -[UITextField _textNeedsSanitizing:] + 184 
    6 UIKit        0x00000001025b34d8 -[UITextField setText:] + 61 
    7 NWMobileTill      0x00000001006a345e -[PimItemDetailView viewDidLoad] + 1486 
    8 UIKit        0x0000000101c36c99 -[UIViewController loadViewIfRequired] + 1258 
    9 UIKit        0x0000000101c370cc -[UIViewController view] + 27 
    10 UIKit        0x00000001024fb49c -[_UIFullscreenPresentationController _setPresentedViewController:] + 87 
    11 UIKit        0x0000000101c11932 -[UIPresentationController initWithPresentedViewController:presentingViewController:] + 141 
    12 UIKit        0x0000000101c49f37 -[UIViewController _presentViewController:withAnimationController:completion:] + 3956 
    13 UIKit        0x0000000101c4d30b -[UIViewController _performCoordinatedPresentOrDismiss:animated:] + 530 
    14 UIKit        0x0000000101c4cdf1 -[UIViewController presentViewController:animated:completion:] + 179 
    15 UIKit        0x00000001022604f7 __74-[UIStoryboardPresentationSegueTemplate newDefaultPerformHandlerForSegue:]_block_invoke + 133 
    16 UIKit        0x000000010226ffbd -[UIStoryboardSegueTemplate _performWithDestinationViewController:sender:] + 447 
    17 UIKit        0x000000010226fdcd -[UIStoryboardSegueTemplate _perform:] + 82 
    18 UIKit        0x000000010227008f -[UIStoryboardSegueTemplate perform:] + 156 
    19 UIKit        0x0000000101bec52a -[UITableView _selectRowAtIndexPath:animated:scrollPosition:notifyDelegate:] + 1769 
    20 UIKit        0x0000000101bec78d -[UITableView _userSelectRowAtPendingSelectionIndexPath:] + 330 
    21 UIKit        0x0000000101aa22eb _runAfterCACommitDeferredBlocks + 320 
    22 UIKit        0x0000000101a8ef6f _cleanUpAfterCAFlushAndRunDeferredBlocks + 566 
    23 UIKit        0x0000000101ac03da _afterCACommitHandler + 176 
    24 CoreFoundation      0x0000000101616e17 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 23 
    25 CoreFoundation      0x0000000101616d87 __CFRunLoopDoObservers + 391 
    26 CoreFoundation      0x00000001015fb4b6 CFRunLoopRunSpecific + 454 
    27 GraphicsServices     0x0000000105922a6f GSEventRunModal + 161 
    28 UIKit        0x0000000101a95964 UIApplicationMain + 159 
    29 NWMobileTill      0x00000001006a580f main + 111 
    30 libdyld.dylib      0x000000010383d68d start + 1 
    31 ???         0x0000000000000001 0x0 + 1 
) 
libc++abi.dylib: terminating with uncaught exception of type NSException 

ответ

0

Я не эксперт, но хотел бы начать здесь:

0x00000001025b37c7 - [UITextField _textNeedsSanitizing:] + 184 6 UIKit 0x00000001025b34d8 - [UITextField SetText:] + 61 7 NWMobileTill 0x00000001006a345e - [PimItemDetailView viewDidLoad] + 1486

Посмотрите на метод viewDidLoad и увидеть Что происходит там внутри, он может попытаться присвоить переменной (Установить UITextField или другой) и не удается сделать это, либо из-за ноль/нуль значение ИЛИ Свойство ld /, которое он пытается установить, на самом деле отсутствует на объекте.

Снова никакой эксперт - просто беглый взгляд говорит мне, что я начну искать.

+0

Хорошо, я обнаружил, что пытался установить setText с использованием логического значения, как только я заверил, что значение было строкой, с которой она работала отлично. –

+0

Рад, что я мог помочь. ура –

1

Важнейшей информацией является

[__NSCFNumber rangeOfCharacterFromSet:] непризнанный селектор.

Согласно трассировке стека ошибка возникает в viewDidLoad от destViewController.

Скорее всего, экземпляр NSNumber присваивается объекту текстового поля text.

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