I'm trying to develop a questionnaire app where sometimes, a string must be inputted. In interface builder I have a scroll view, and in it a UITextField. But when I run it in the simulator, the app crashes when I try to input a simple string into it. The keyboard shows up, but as soon as I try to type something, I get a SIGARBT on the main function. The complete error message (don't mind the app name, it's just a simple test app that I made in a few minutes):
2014-03-08 18:16:38.564 hetisweertijdvoordepolonaise[4381:70b] -[NSNull length]: unrecognized selector sent to instance 0x1898068
2014-03-08 18:16:38.569 hetisweertijdvoordepolonaise[4381:70b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSNull length]: unrecognized selector sent to instance 0x1898068'
*** First throw call stack:
(
0 CoreFoundation 0x0174c5e4 __exceptionPreprocess + 180
1 libobjc.A.dylib 0x014bb8b6 objc_exception_throw + 44
2 CoreFoundation 0x017e9903 -[NSObject(NSObject) doesNotRecognizeSelector:] + 275
3 CoreFoundation 0x0173c90b ___forwarding___ + 1019
4 CoreFoundation 0x0173c4ee _CF_forwarding_prep_0 + 14
5 CoreFoundation 0x016cc95c CFStringGetLength + 140
6 CoreFoundation 0x016e0284 CFStringCompareWithOptionsAndLocale + 52
7 Foundation 0x010c6634 -[NSString compare:options:range:locale:] + 175
8 Foundation 0x010c6580 -[NSString compare:options:range:] + 69
9 Foundation 0x010d8a59 -[NSString caseInsensitiveCompare:] + 80
10 UIKit 0x0043ff48 -[UIPhysicalKeyboardEvent _matchesKeyCommand:] + 280
11 UIKit 0x00383ac9 -[UIResponder(Internal) _keyCommandForEvent:] + 312
12 UIKit 0x00383b3b -[UIResponder(Internal) _keyCommandForEvent:] + 426
13 UIKit 0x00383b3b -[UIResponder(Internal) _keyCommandForEvent:] + 426
14 UIKit 0x00383b3b -[UIResponder(Internal) _keyCommandForEvent:] + 426
15 UIKit 0x00383b3b -[UIResponder(Internal) _keyCommandForEvent:] + 426
16 UIKit 0x0023d34b -[UIApplication _handleKeyUIEvent:] + 138
17 UIKit 0x00383fa4 -[UIResponder(Internal) _handleKeyUIEvent:] + 59
18 UIKit 0x00383fa4 -[UIResponder(Internal) _handleKeyUIEvent:] + 59
19 UIKit 0x00383fa4 -[UIResponder(Internal) _handleKeyUIEvent:] + 59
20 UIKit 0x00383fa4 -[UIResponder(Internal) _handleKeyUIEvent:] + 59
21 UIKit 0x00383fa4 -[UIResponder(Internal) _handleKeyUIEvent:] + 59
22 UIKit 0x00383fa4 -[UIResponder(Internal) _handleKeyUIEvent:] + 59
23 UIKit 0x0023d2ba -[UIApplication handleKeyUIEvent:] + 84
24 UIKit 0x00413d29 -[UIKeyboardImpl _handleKeyEvent:executionContext:] + 80
25 UIKit 0x0058d179 -[UIKeyboardLayoutStar completeRetestForTouchUp:timestamp:interval:executionContext:] + 4078
26 UIKit 0x0058bc7f -[UIKeyboardLayoutStar touchUp:executionContext:] + 1545
27 UIKit 0x00421f18 __28-[UIKeyboardLayout touchUp:]_block_invoke + 269
28 UIKit 0x009383c8 -[UIKeyboardTaskQueue continueExecutionOnMainThread] + 402
29 UIKit 0x00938a6f -[UIKeyboardTaskQueue addTask:] + 144
30 UIKit 0x00421e03 -[UIKeyboardLayout touchUp:] + 263
31 UIKit 0x00422939 -[UIKeyboardLayout touchesEnded:withEvent:] + 362
32 UIKit 0x0026851d -[UIWindow _sendTouchesForEvent:] + 852
33 UIKit 0x00269184 -[UIWindow sendEvent:] + 1232
34 UIKit 0x0023ce86 -[UIApplication sendEvent:] + 242
35 UIKit 0x0022718f _UIApplicationHandleEventQueue + 11421
36 CoreFoundation 0x016d583f __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 15
37 CoreFoundation 0x016d51cb __CFRunLoopDoSources0 + 235
38 CoreFoundation 0x016f229e __CFRunLoopRun + 910
39 CoreFoundation 0x016f1ac3 CFRunLoopRunSpecific + 467
40 CoreFoundation 0x016f18db CFRunLoopRunInMode + 123
41 GraphicsServices 0x036dd9e2 GSEventRunModal + 192
42 GraphicsServices 0x036dd809 GSEventRun + 104
43 UIKit 0x00229d3b UIApplicationMain + 1225
44 hetisweertijdvoordepolonaise 0x0000204d main + 141
45 libdyld.dylib 0x01d76701 start + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb)
ViewController.m:
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
}
@end
Is there some fundamental thing I forgot?
According to the stack trace, maybe you have initialized a NSString incorrectly. Please paste the relevant code.
This is a shot in the dark without seeing more of your code. Looking at the stacktrace, it seems like your code is misinterpreting your text input as a key command for some reason. It is trying to compare your input against a set of known commands and failing.
There are a few other things that might be related since you are running in the simulator. In the 'hardware' menu is 'simulate hardware keyboard' checked? What about 'IOS uses same layout as OSX'?
One last thing. If you really want people to be able to reproduce this issue, we need to see the UI code. If you right click on your storyboard file and select 'open as' there is an option to view the file as source code. For an app as simple as what you described, the text should be small enough that you can paste it here or host it somewhere and provide a link.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.