2014-08-13 3 views
0

Я испытываю непризнанный селектор для этого:Непризнанный Селектор для NSNull isCString

-[NSNull _isCString]: unrecognized selector sent to instance

Данный журнал аварий мое приложение. Каковы возможные причины этой ошибки? Может кто-нибудь дать некоторые идеи? Любой ответ будет очень оценен. Большое спасибо!

На самом деле, я просто хочу отредактировать строку из контроллера табличного представления. Я заметил, что когда я нажимаю EDIT на панели навигации моего контроллера табличного представления, строки 0, 2 и 4 получают ошибку, но строки 1 и 3 этого не делают.

2014-08-13 11:39:27.531 boysenios[5253:60b] -[NSNull _isCString]: unrecognized selector sent to instance 0x2068068 
2014-08-13 11:39:27.535 boysenios[5253:60b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSNull _isCString]: unrecognized selector sent to instance 0x2068068' 
*** First throw call stack: 
(
    0 CoreFoundation      0x01f1c1e4 __exceptionPreprocess + 180 
    1 libobjc.A.dylib      0x01c9b8e5 objc_exception_throw + 44 
    2 CoreFoundation      0x01fb9243 -[NSObject(NSObject) doesNotRecognizeSelector:] + 275 
    3 CoreFoundation      0x01f0c50b ___forwarding___ + 1019 
    4 CoreFoundation      0x01f0c0ee _CF_forwarding_prep_0 + 14 
    5 Foundation       0x018cc986 -[NSBigMutableString replaceCharactersInRange:withString:] + 317 
    6 Foundation       0x018cc815 -[NSConcreteMutableAttributedString replaceCharactersInRange:withAttributedString:] + 384 
    7 UIFoundation      0x03e86774 __71-[NSConcreteTextStorage replaceCharactersInRange:withAttributedString:]_block_invoke + 68 
    8 UIFoundation      0x03e866af -[NSConcreteTextStorage replaceCharactersInRange:withAttributedString:] + 121 
    9 Foundation       0x018f6f76 -[NSMutableAttributedString setAttributedString:] + 90 
    10 UIKit        0x01065c6c __32-[UITextView setAttributedText:]_block_invoke + 43 
    11 UIFoundation      0x03e84211 -[NSTextStorage coordinateEditing:] + 48 
    12 UIKit        0x010658cb -[UITextView setAttributedText:] + 254 
    13 UIKit        0x01069eb5 -[UITextView setText:] + 149 
    14 boysenios       0x000233c6 -[ProjectFormTableViewController resetView] + 3873 
    15 boysenios       0x00022494 -[ProjectFormTableViewController setViewToEdit:] + 61 
    16 libobjc.A.dylib      0x01cad880 -[NSObject performSelector:withObject:withObject:] + 77 
    17 UIKit        0x0095d3b9 -[UIApplication sendAction:to:from:forEvent:] + 108 
    18 UIKit        0x00c4a8df -[UIBarButtonItem(UIInternal) _sendAction:withEvent:] + 139 
    19 libobjc.A.dylib      0x01cad880 -[NSObject performSelector:withObject:withObject:] + 77 
    20 UIKit        0x0095d3b9 -[UIApplication sendAction:to:from:forEvent:] + 108 
    21 UIKit        0x0095d345 -[UIApplication sendAction:toTarget:fromSender:forEvent:] + 61 
    22 UIKit        0x00a5ebd1 -[UIControl sendAction:to:forEvent:] + 66 
    23 UIKit        0x00a5efc6 -[UIControl _sendActionsForEvents:withEvent:] + 577 
    24 UIKit        0x00a5e243 -[UIControl touchesEnded:withEvent:] + 641 
    25 UIKit        0x0099cddd -[UIWindow _sendTouchesForEvent:] + 852 
    26 UIKit        0x0099d9d1 -[UIWindow sendEvent:] + 1117 
    27 UIKit        0x0096f5f2 -[UIApplication sendEvent:] + 242 
    28 UIKit        0x00959353 _UIApplicationHandleEventQueue + 11455 
    29 CoreFoundation      0x01ea577f __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 15 
    30 CoreFoundation      0x01ea510b __CFRunLoopDoSources0 + 235 
    31 CoreFoundation      0x01ec21ae __CFRunLoopRun + 910 
    32 CoreFoundation      0x01ec19d3 CFRunLoopRunSpecific + 467 
    33 CoreFoundation      0x01ec17eb CFRunLoopRunInMode + 123 
    34 GraphicsServices     0x033345ee GSEventRunModal + 192 
    35 GraphicsServices     0x0333442b GSEventRun + 104 
    36 UIKit        0x0095bf9b UIApplicationMain + 1225 
    37 boysenios       0x00027f83 main + 94 
    38 libdyld.dylib      0x02fcd701 start + 1 
    39 ???         0x00000001 0x0 + 1 
) 
libc++abi.dylib: terminating with uncaught exception of type NSException 
+1

Проводка большего количества кода поможет, но я предполагаю, что вы вызываете метод (селектор) для не-объекта. – carloabelli

+0

Очень просто. У вас есть объект NSNull. Он не распознает метод '_isCString'. Вероятно, вы получили NSNull в строке JSON, поэтому вам нужно добавить логику, чтобы проверить, является ли этот указатель NSNull: 'if (myPointer == [NSNull null]) ...' –

+0

И опубликовать код и трассировку стека исключений , –

ответ

1

NSNull является классом, класс не реализует _isCString, следовательно, непризнанный ошибку выбора. Objective-C обычно использует nil для представления значения 0 или нулевого указателя. Однако стандартные контейнеры, такие как NSDictionary и NSArray, не могут удерживать значения nil, поэтому вы иногда видите вместо этого [NSNull null].

Это в основном соглашение в вашем коде, которое определяет, проверяете ли вы myVal == [NSNull null] или myVal == nil.

Основываясь на трассе, которую вы отправили, вам, возможно, нужно сделать что-то myVal == [NSNull null].

+0

Я бы добавил, что на основе строки 13 в трассировке стека я бы сказал, что он устанавливает свойство '.text'' 'UITextView' для nil:' 13 UIKit 0x01069eb5 - [UITextView setText:] + 149' –

+0

Could пожалуйста, укажите пример г-на Майка С., что вы добавили в строке 13 трассировки стека? Я все еще получаю сообщение об ошибке моего приложения. – pr0f1le

+0

Благодарим за помощь! Я, наконец, решу проблему. :) – pr0f1le

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