weird error when finish editing UITextField [closed] - ios

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Questions asking for code must demonstrate a minimal understanding of the problem being solved. Include attempted solutions, why they didn't work, and the expected results. See also: Stack Overflow question checklist
Closed 9 years ago.
Improve this question
This is what I get when I press the done button on the keyboard of a UITextField: (code to follow)
2013-10-14 23:22:55.170 What to where?[21627:a0b] *** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayI objectAtIndex:]: index 1 beyond bounds [0 .. 0]'
*** First throw call stack:
(
0 CoreFoundation 0x0008e5e4 __exceptionPreprocess + 180
1 libobjc.A.dylib 0x0178e8b6 objc_exception_throw + 44
2 CoreFoundation 0x00042a32 -[__NSArrayI objectAtIndex:] + 210
3 What to where? 0x00002670 -[ViewController getWeatherForecast] + 352
4 What to where? 0x00002430 -[ViewController textFieldDidEndEditing:] + 288
5 libobjc.A.dylib 0x017a081f -[NSObject performSelector:withObject:] + 70
6 UIKit 0x00502c8c -[UIApplication sendAction:to:from:forEvent:] + 108
7 UIKit 0x00502c18 -[UIApplication sendAction:toTarget:fromSender:forEvent:] + 61
8 UIKit 0x005fa6d9 -[UIControl sendAction:to:forEvent:] + 66
9 UIKit 0x005faa9c -[UIControl _sendActionsForEvents:withEvent:] + 577
10 UIKit 0x00bddaf3 -[UITextField _resignFirstResponder] + 300
11 UIKit 0x0065a71e -[UIResponder _finishResignFirstResponder] + 181
12 UIKit 0x0065a82f -[UIResponder resignFirstResponder] + 265
13 UIKit 0x00bdd894 -[UITextField resignFirstResponder] + 118
14 What to where? 0x000024d9 -[ViewController textFieldShouldReturn:] + 137
15 UIKit 0x00be68bf -[UITextField keyboardInput:shouldInsertText:isMarkedText:] + 357
16 UIKit 0x006d5a43 -[UIKeyboardImpl callShouldInsertText:] + 271
17 UIKit 0x006dfd20 -[UIKeyboardImpl addWordTerminator:afterSpace:elapsedTime:executionContext:] + 63
18 UIKit 0x006df81a -[UIKeyboardImpl completeAcceptCandidateBeforeAddingInput:executionContext:] + 1668
19 UIKit 0x006df0f6 __60-[UIKeyboardImpl addInputString:withFlags:executionContext:]_block_invoke + 53
20 UIKit 0x00c0dc6e -[UIKeyboardTaskExecutionContext returnExecutionToParent] + 254
21 UIKit 0x006e299b -[UIKeyboardImpl acceptCurrentCandidateIfSelectedWithExecutionContext:] + 250
22 UIKit 0x006df0b9 -[UIKeyboardImpl addInputString:withFlags:executionContext:] + 451
23 UIKit 0x006ddf7f -[UIKeyboardImpl handleStringInput:withFlags:executionContext:] + 248
24 UIKit 0x006ec16f -[UIKeyboardImpl handleKeyWithString:forKeyEvent:executionContext:] + 633
25 UIKit 0x006ebcb6 -[UIKeyboardImpl handleKeyEvent:executionContext:] + 1808
26 UIKit 0x006eb50f __33-[UIKeyboardImpl handleKeyEvent:]_block_invoke + 51
27 UIKit 0x006eb31c -[UIKeyboardImpl _handleKeyEvent:executionContext:] + 243
28 UIKit 0x008642e9 -[UIKeyboardLayoutStar completeRetestForTouchUp:timestamp:interval:executionContext:] + 4078
29 UIKit 0x00862def -[UIKeyboardLayoutStar touchUp:executionContext:] + 1545
30 UIKit 0x006f9398 __28-[UIKeyboardLayout touchUp:]_block_invoke + 269
31 UIKit 0x00c0e1b8 -[UIKeyboardTaskQueue continueExecutionOnMainThread] + 402
32 UIKit 0x00c0e85f -[UIKeyboardTaskQueue addTask:] + 144
33 UIKit 0x006f9283 -[UIKeyboardLayout touchUp:] + 263
34 UIKit 0x006f9db9 -[UIKeyboardLayout touchesEnded:withEvent:] + 362
35 UIKit 0x005400cd -[UIWindow _sendTouchesForEvent:] + 852
36 UIKit 0x00540d34 -[UIWindow sendEvent:] + 1232
37 UIKit 0x00514a36 -[UIApplication sendEvent:] + 242
38 UIKit 0x004fed9f _UIApplicationHandleEventQueue + 11421
39 CoreFoundation 0x000178af __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 15
40 CoreFoundation 0x0001723b __CFRunLoopDoSources0 + 235
41 CoreFoundation 0x0003430e __CFRunLoopRun + 910
42 CoreFoundation 0x00033b33 CFRunLoopRunSpecific + 467
43 CoreFoundation 0x0003394b CFRunLoopRunInMode + 123
44 GraphicsServices 0x036859d7 GSEventRunModal + 192
45 GraphicsServices 0x036857fe GSEventRun + 104
46 UIKit 0x0050194b UIApplicationMain + 1225
47 What to where? 0x00002d3d main + 141
48 libdyld.dylib 0x01fbf725 start + 0
)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb)
The code in the .h :
#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>
#interface ViewController : UIViewController <UITextFieldDelegate> {
NSString *location;
NSString *time;
}
#property (strong, nonatomic) IBOutlet UITextField *destinationTF;
#property (strong, nonatomic) IBOutlet UITextField *timeTF;
- (IBAction)textFieldDidEndEditing:(id)sender;
#end
And the .m:
#synthesize destinationTF, timeTF;
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (IBAction)textFieldDidEndEditing:(id)sender {
if (sender == destinationTF ) {
location = destinationTF.text;
} else if (sender == timeTF) {
time = timeTF.text;
}
[self getWeatherForecast];
}
- (BOOL)textFieldShouldReturn:(UITextField *)textField{
[destinationTF resignFirstResponder];
[timeTF resignFirstResponder];
return YES;
}

0x00042a32 -[__NSArrayI objectAtIndex:] + 210
I don't have the source code to your getWeatherForcast method, but I would guess that that array is empty. Before you execute any code on the array try:
if ([someArray lastObject]) {
..Do something
} else {
do something if the test fails
}
This is safe and will not crash because the array is out of bounds. (It just returns nil)
I think iOS 7 added firstObject as well.

The crash is due to an index out of bounds error and it is occurring in your getWeatherForecast method. You may be attempting to get an object out of an empty array...

Related

After I conneted the UIVIew to my code,it crashed,why?

I press on CONTROL and drag the UIImageVIew and UILabel which is in AppView.xib to my code file named "AppVIew.h". Before I connect the two UI widgets it ran ok ,I want to know the reasons leading to the crash.Very thanks for your answers.
#property
The code as following:
#import <UIKit/UIKit.h>
#interface AppView : UIView
#property (weak, nonatomic) IBOutlet UIImageView *icon;
#property (weak, nonatomic) IBOutlet UILabel *name;
+ (id)AppViewWithIcon:(NSString *)icon Name:(NSString *)name;
#end
#import "AppView.h"
#implementation AppView
+ (id)AppViewWithIcon:(NSString *)icon Name:(NSString *)name{
AppView *view = [[NSBundle mainBundle] loadNibNamed:#"AppView" owner:nil options:nil][0];
NSLog(#"%#",view);
return view;
}
the errors as following:
1.Thread 1:EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP,subcode=0X0)
2.2016-03-27 18:53:36.804 05-九宫格[4302:283744] *** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<NSObject 0x7fca52c1a1c0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key icon.'
*** First throw call stack:
(
0 CoreFoundation 0x0000000101630d85 __exceptionPreprocess + 165
1 libobjc.A.dylib 0x00000001010a4deb objc_exception_throw + 48
2 CoreFoundation 0x00000001016309c9 -[NSException raise] + 9
3 Foundation 0x0000000100c6f19b -[NSObject(NSKeyValueCoding) setValue:forKey:] + 288
4 UIKit 0x0000000101db07fb -[UIRuntimeOutletConnection connect] + 109
5 CoreFoundation 0x000000010156a890 -[NSArray makeObjectsPerformSelector:] + 224
6 UIKit 0x0000000101daf1de -[UINib instantiateWithOwner:options:] + 1864
7 UIKit 0x0000000101db1415 -[NSBundle(UINSBundleAdditions) loadNibNamed:owner:options:] + 223
8 05-九宫格 0x0000000100ba1490 +[AppView AppViewWithIcon:Name:] + 160
9 05-九宫格 0x0000000100ba0cae -[ViewController viewDidLoad] + 206
10 UIKit 0x0000000101b81984 -[UIViewController loadViewIfRequired] + 1198
11 UIKit 0x0000000101b81cd3 -[UIViewController view] + 27
12 UIKit 0x0000000101a57fb4 -[UIWindow addRootViewControllerViewIfPossible] + 61
13 UIKit 0x0000000101a5869d -[UIWindow _setHidden:forced:] + 282
14 UIKit 0x0000000101a6a180 -[UIWindow makeKeyAndVisible] + 42
15 UIKit 0x00000001019deed9 -[UIApplication _callInitializationDelegatesForMainScene:transitionContext:] + 4131
16 UIKit 0x00000001019e5568 -[UIApplication _runWithMainScene:transitionContext:completion:] + 1769
17 UIKit 0x00000001019e2714 -[UIApplication workspaceDidEndTransaction:] + 188
18 FrontBoardServices 0x000000010444f8c8 __FBSSERIALQUEUE_IS_CALLING_OUT_TO_A_BLOCK__ + 24
19 FrontBoardServices 0x000000010444f741 -[FBSSerialQueue _performNext] + 178
20 FrontBoardServices 0x000000010444faca -[FBSSerialQueue _performNextFromRunLoopSource] + 45
21 CoreFoundation 0x0000000101556301 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
22 CoreFoundation 0x000000010154c22c __CFRunLoopDoSources0 + 556
23 CoreFoundation 0x000000010154b6e3 __CFRunLoopRun + 867
24 CoreFoundation 0x000000010154b0f8 CFRunLoopRunSpecific + 488
25 UIKit 0x00000001019e1f21 -[UIApplication _run] + 402
26 UIKit 0x00000001019e6f09 UIApplicationMain + 171
27 05-九宫格 0x0000000100ba195f main + 111
28 libdyld.dylib 0x0000000103e0a92d start + 1
29 ??? 0x0000000000000001 0x0 + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb)
Check if their are any previous outlets that have been deleted from within the storyboard, by either checking the view controller inspector and referencing outlets for any outlets that may contradict the ones you have made as well as the UIView/UILabel.

Crash on focus UITextField

I am working on an iOS app, but for some reason all of a sudden my login page is not working anymore. All of the UIElements seem to be working fine except for the UITextField I use for the username (Password textField is working fine).
The login screen is very basic, it has a one viewcontroller and the username textfield has one outlet in that viewcontroller.
I don't do anything with the textfield when it focuses.
It happens on iOS8 on the physical iPad 2, and on the iPhone 4s emulator.
What I have tried to do:
Re-install the app
Re-ad the textField
Re-connect the Outlet
Revert my storyboard to a working version
I found some other answers, but none of them seem to have a conclusive answer.
Exception:
2015-03-24 11:13:53.695 App[43084:866627] -[__NSCFString objectAtIndex:]: unrecognized selector sent to instance 0x7ae5f920
2015-03-24 11:13:53.726 App[43084:866627] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFString objectAtIndex:]: unrecognized selector sent to instance 0x7ae5f920'
*** First throw call stack:
(
0 CoreFoundation 0x00def466 __exceptionPreprocess + 182
1 libobjc.A.dylib 0x006d7a97 objc_exception_throw + 44
2 CoreFoundation 0x00df72c5 -[NSObject(NSObject) doesNotRecognizeSelector:] + 277
3 CoreFoundation 0x00d3fbc7 ___forwarding___ + 1047
4 CoreFoundation 0x00d3f78e _CF_forwarding_prep_0 + 14
5 CoreFoundation 0x00cc531c CFArrayGetValueAtIndex + 188
6 CoreFoundation 0x00d601ed CFStringTokenizerCreate + 749
7 UIKit 0x01c377ce __91-[_UITextInputControllerTokenizer _getClosestTokenRangeForPosition:granularity:downstream:]_block_invoke44 + 264
8 UIFoundation 0x0439e9d3 -[NSTextStorage coordinateReading:] + 51
9 UIKit 0x01c37459 -[_UITextInputControllerTokenizer _getClosestTokenRangeForPosition:granularity:downstream:] + 276
10 UIKit 0x018ba567 -[UITextInputStringTokenizer positionFromPosition:toBoundary:inDirection:] + 93
11 UIKit 0x018bad9d -[TIDocumentState(UITextInputAdditions) _contextBeforePosition:inDocument:] + 81
12 UIKit 0x018baef3 -[TIDocumentState(UITextInputAdditions) initWithDocument:] + 125
13 UIKit 0x018ba95f +[TIDocumentState(UITextInputAdditions) documentStateOfDocument:] + 63
14 UIKit 0x015fad7b -[UIKeyboardImpl syncDocumentStateToInputDelegateWithExecutionContext:] + 298
15 UIKit 0x015fb787 -[UIKeyboardImpl updateForChangedSelectionWithExecutionContext:] + 326
16 UIKit 0x015f57b6 __36-[UIKeyboardImpl setDelegate:force:]_block_invoke + 43
17 UIKit 0x01c384b2 -[UIKeyboardTaskQueue continueExecutionOnMainThread] + 404
18 UIKit 0x01c38b6f -[UIKeyboardTaskQueue addTask:] + 144
19 UIKit 0x015f5783 -[UIKeyboardImpl setDelegate:force:] + 2450
20 UIKit 0x015f4dec -[UIKeyboardImpl setDelegate:] + 60
21 UIKit 0x01928fe5 -[UIPeripheralHost(UIKitInternal) _reloadInputViewsForResponder:] + 1096
22 UIKit 0x01570687 -[UIResponder(UIResponderInputViewAdditions) reloadInputViews] + 316
23 UIKit 0x0156f6ec -[UIResponder becomeFirstResponder] + 562
24 UIKit 0x01435ba0 -[UIView(Hierarchy) becomeFirstResponder] + 114
25 UIKit 0x01c04607 -[UITextField becomeFirstResponder] + 51
26 UIKit 0x018051bf -[UITextInteractionAssistant(UITextInteractionAssistant_Internal) setFirstResponderIfNecessary] + 200
27 UIKit 0x018077e6 -[UITextInteractionAssistant(UITextInteractionAssistant_Internal) oneFingerTap:] + 2762
28 UIKit 0x017fb057 _UIGestureRecognizerSendActions + 327
29 UIKit 0x017f98d4 -[UIGestureRecognizer _updateGestureWithEvent:buttonEvent:] + 561
30 UIKit 0x017fb91d -[UIGestureRecognizer _delayedUpdateGesture] + 60
31 UIKit 0x017ff29a ___UIGestureRecognizerUpdate_block_invoke661 + 57
32 UIKit 0x017ff15d _UIGestureRecognizerRemoveObjectsFromArrayAndApplyBlocks + 317
33 UIKit 0x017f3066 _UIGestureRecognizerUpdate + 3720
34 UIKit 0x0140ac5b -[UIWindow _sendGesturesForEvent:] + 1356
35 UIKit 0x0140babf -[UIWindow sendEvent:] + 769
36 UIKit 0x013d0bb1 -[UIApplication sendEvent:] + 242
37 UIKit 0x013e0bf6 _UIApplicationHandleEventFromQueueEvent + 21066
38 UIKit 0x013b4bc7 _UIApplicationHandleEventQueue + 2300
39 CoreFoundation 0x00d1298f __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 15
40 CoreFoundation 0x00d0849d __CFRunLoopDoSources0 + 253
41 CoreFoundation 0x00d079f8 __CFRunLoopRun + 952
42 CoreFoundation 0x00d0737b CFRunLoopRunSpecific + 443
43 CoreFoundation 0x00d071ab CFRunLoopRunInMode + 123
44 GraphicsServices 0x04e182c1 GSEventRunModal + 192
45 GraphicsServices 0x04e180fe GSEventRun + 104
46 UIKit 0x013b89b6 UIApplicationMain + 1526
47 App 0x0005ffbd main + 141
48 libdyld.dylib 0x0296dac9 start + 1
49 ??? 0x00000001 0x0 + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
Viewcontroller:
#import "LoginViewController.h"
#implementation LoginViewController
UserManager *usermanager;
- (void)viewDidLoad
{
[super viewDidLoad];
}
- (IBAction)cancelLogin:(id)sender {
[self dismissViewControllerAnimated:true completion:nil];
}
- (IBAction)login:(id)sender {
[loginIndicator startAnimating];
LoginHandler *loginhandler = [[LoginHandler alloc]initWithUsername:usernameField.text
password:passwordField.text
beta:betaSwitch.isOn
view:self];
[loginhandler loginUser];
}
-(void)resetFields{
usernameField.text = #"";
passwordField.text = #"";
[loginIndicator stopAnimating];
}
#end
Viewcontroller.h
#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>
#import "LoginHandler.h"
#interface LoginViewController : UIViewController{
__weak IBOutlet UITextField *usernameField;
__weak IBOutlet UITextField *passwordField;
__weak IBOutlet UIActivityIndicatorView *loginIndicator;
__weak IBOutlet UISwitch *betaSwitch;
__weak IBOutlet UINavigationBar *navigationBar;
}
-(void)resetFields;
#end
An exception breakpoint gives this line:
2015-03-24 11:43:41.338 App[323:15867] -[__NSCFString objectAtIndex:]: unrecognized selector sent to instance 0x15653690
Can anyone else help me?
Thanks
I seem to have found an answer, it had something to do with my constraints for some reason. I cleared the constraints and re-added them and somehow it is working again.

iOS 7.1 update crash when switching between uitextfields with reason setObjectForKey: object cannot be nil (key: NSShadow)

We have a failry complex mobile application that uses a static table view for input. With the update to ios 7.1 we are now getting a crash after a user goes through a few text fields without entering information, then enters something and moves to the next text field. The crash is
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: ' setObjectForKey: object cannot be nil (key: NSShadow)'
with this stack trace:
* First throw call stack: (
0 CoreFoundation 0x000000010342b495 exceptionPreprocess + 165
1 libobjc.A.dylib 0x000000010318a99e objc_exception_throw + 43
2 CoreFoundation 0x00000001034aa544 -[NSDictionaryM setObject:forKey:] + 916
3 UIKit 0x0000000101eb877c -[UILabel setShadow:] + 339
4 UIKit 0x0000000101eb88b5 -[UILabel setShadowColor:] + 100
5 CoreFoundation 0x0000000103420f1c invoking + 140
6 CoreFoundation 0x00000001034b0e84 -[NSInvocation invokeUsingIMP:] + 212
7 UIKit 0x00000001021f0b4d workaround10030904InvokeWithTarget_block_invoke + 88
8 UIKit 0x0000000101d7eecb +[UIView _performCustomizableAppearanceModifications:] + 33
9 UIKit 0x00000001021f0ae3 workaround10030904InvokeWithTarget + 938
10 UIKit 0x00000001021ebfc9 +[_UIAppearance _applyInvocationsTo:window:matchingSelector:] + 3482
11 UIKit 0x0000000101d938fa 88-[UIView(Internal) performUpdatesForPossibleChangesOfIdiom:orScreen:traverseHierarchy:]block_invoke + 63
12 UIKit 0x0000000101d93885 -[UIView(Internal) _performUpdatesForPossibleChangesOfIdiom:orScreen:traverseHierarchy:] + 230
13 UIKit 0x0000000101d92e2c -[UIView(Internal) _didMoveFromWindow:toWindow:] + 1369
14 UIKit 0x0000000101d8b996 45-[UIView(Hierarchy) postMovedFromSuperview:]_block_invoke + 128
15 UIKit 0x0000000101d8b85c -[UIView(Hierarchy) _postMovedFromSuperview:] + 276
16 UIKit 0x0000000101d952ac -[UIView(Internal) _addSubview:positioned:relativeTo:] + 1508
17 UIKit 0x000000010237d922 -[UITextField willDetachFieldEditor:] + 96
18 UIKit 0x0000000101e1b48e -[UIFieldEditor becomeFieldEditorForView:] + 236
19 UIKit 0x0000000102375497 -[UITextField _resignFirstResponder] + 197
20 UIKit 0x0000000101e6b212 -[UIResponder resignFirstResponder] + 128
21 UIKit 0x00000001023752db -[UITextField resignFirstResponder] + 114
22 UIKit 0x0000000101e6b011 -[UIResponder becomeFirstResponder] + 297
23 UIKit 0x0000000101d8b673 -[UIView(Hierarchy) becomeFirstResponder] + 99
24 UIKit 0x0000000102374b08 -[UITextField becomeFirstResponder] + 51
25 UIKit 0x0000000102067d01 -[UITextInteractionAssistant(UITextInteractionAssistant_Internal) setFirstResponderIfNecessary] + 187
26 UIKit 0x0000000102069b30 -[UITextInteractionAssistant(UITextInteractionAssistant_Internal) oneFingerTap:] + 1768
27 UIKit 0x000000010205ffc2 _UIGestureRecognizerSendActions + 188
28 UIKit 0x000000010205ef28 -[UIGestureRecognizer _updateGestureWithEvent:buttonEvent:] + 357
29 UIKit 0x00000001020632d9 UIGestureRecognizerUpdate_block_invoke + 53
30 UIKit 0x0000000102063261 _UIGestureRecognizerRemoveObjectsFromArrayAndApplyBlocks + 257
31 UIKit 0x000000010205b337 _UIGestureRecognizerUpdate + 93
32 UIKit 0x0000000101d6fa15 -[UIWindow _sendGesturesForEvent:] + 928
33 UIKit 0x0000000101d706d4 -[UIWindow sendEvent:] + 909
34 UIKit 0x0000000101d4829a -[UIApplication sendEvent:] + 211
35 UIKit 0x0000000101d35aed _UIApplicationHandleEventQueue + 9579
36 CoreFoundation 0x00000001033bad21 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION + 17
37 CoreFoundation 0x00000001033ba5f2 CFRunLoopDoSources0 + 242
38 CoreFoundation 0x00000001033d646f CFRunLoopRun + 767
39 CoreFoundation 0x00000001033d5d83 CFRunLoopRunSpecific + 467
40 GraphicsServices 0x000000010524cf04 GSEventRunModal + 161
41 UIKit 0x0000000101d37e33 UIApplicationMain + 1010
42 Sales Rabbit 0x000000010000c333 main + 115
43 libdyld.dylib 0x0000000103ac35fd start + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
As far as I can tell the crash is happening when we call
[curView becomeFirstResponder];
curView is not nil, and is a uitextfield
Any ideas on what to check or help would be greatly appreciated.
So I ended up finding the answer, for some reason someone had written this line of code even though it doesnt seem necessary.
[[UILabel appearance] setShadowColor:[UIColor clearColor]];
And this was causing it to crash, but only in the situation that I described above, not when it was set in the app delegate. It seems like it should be allowed to set a the shadow color to clear, although why you would do this is not apparent to me.

iOS 7 app crashes on UITextField input

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.

Crash attempting to set delegate of textfield

I have a lot of textfields and what I am trying to make them do is dismiss when the return key is used. In order for this to work you need to set the delegate of each textfield to self, like this [textfield setDelegate: self];. I have over 50 textfields in my project and in order to make it so they all dismiss I have to copy that line of code for each textfield. In the example below I used a for loop to try to shrink this down, but my project crashes and gives me this error when I try. Can someone tell me what im doing wrong and how i can fix this?
//.h
#interface InsertScheduleCGPS : UIViewController <UITextFieldDelegate>{
NSArray *Dayh;
IBOutlet UITextField *Day11;
}
#property(nonatomic, assign) id<UITextFieldDelegate> delegate;
#property (nonatomic,strong) NSArray *Dayh;
.
//.m
- (void)viewDidLoad
{
[super viewDidLoad];
Dayh = [NSArray arrayWithObjects:#"Day11", nil];
NSLog(#"euf");
for(int i=0; i<[self.Dayh count]; i++) {
NSLog(#"dd%#",[self.Dayh objectAtIndex:i]);
[[self.Dayh objectAtIndex:i] setDelegate: self];
}
- (BOOL)textFieldShouldReturn:(UITextField *)Day11 {
[[self view] endEditing:YES];
return NO;
}
ERROR:
2014-01-18 19:15:26.712 Swepple[64912:70b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFConstantString setDelegate:]: unrecognized selector sent to instance 0x144ec'
*** First throw call stack:
(
0 CoreFoundation 0x0183b5e4 __exceptionPreprocess + 180
1 libobjc.A.dylib 0x015be8b6 objc_exception_throw + 44
2 CoreFoundation 0x018d8903 -[NSObject(NSObject) doesNotRecognizeSelector:] + 275
3 CoreFoundation 0x0182b90b ___forwarding___ + 1019
4 CoreFoundation 0x0182b4ee _CF_forwarding_prep_0 + 14
5 Swepple 0x0000bbd6 -[InsertScheduleCGPS viewDidLoad] + 4262
6 UIKit 0x00440318 -[UIViewController loadViewIfRequired] + 696
7 UIKit 0x004405b4 -[UIViewController view] + 35
8 UIKit 0x0044f361 -[UIViewController viewControllerForRotation] + 63
9 UIKit 0x00446f00 -[UIViewController _visibleView] + 84
10 UIKit 0x006d511a -[UIWindowController transition:fromViewController:toViewController:target:didEndSelector:animation:] + 5199
11 UIKit 0x0044c0fc -[UIViewController presentViewController:withTransition:completion:] + 6433
12 UIKit 0x0044c61f -[UIViewController presentViewController:animated:completion:] + 130
13 UIKit 0x0044c65f -[UIViewController presentModalViewController:animated:] + 56
14 UIKit 0x00870e16 -[UIStoryboardModalSegue perform] + 271
15 UIKit 0x0086107e -[UIStoryboardSegueTemplate _perform:] + 174
16 UIKit 0x00442280 -[UIViewController performSegueWithIdentifier:sender:] + 72
17 Swepple 0x000052d4 -[SecondViewController insert:] + 244
18 libobjc.A.dylib 0x015d0874 -[NSObject performSelector:withObject:withObject:] + 77
19 UIKit 0x0032e0c2 -[UIApplication sendAction:to:from:forEvent:] + 108
20 UIKit 0x0032e04e -[UIApplication sendAction:toTarget:fromSender:forEvent:] + 61
21 UIKit 0x004260c1 -[UIControl sendAction:to:forEvent:] + 66
22 UIKit 0x00426484 -[UIControl _sendActionsForEvents:withEvent:] + 577
23 UIKit 0x00425733 -[UIControl touchesEnded:withEvent:] + 641
24 UIKit 0x0036b51d -[UIWindow _sendTouchesForEvent:] + 852
25 UIKit 0x0036c184 -[UIWindow sendEvent:] + 1232
26 UIKit 0x0033fe86 -[UIApplication sendEvent:] + 242
27 UIKit 0x0032a18f _UIApplicationHandleEventQueue + 11421
28 CoreFoundation 0x017c483f __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 15
29 CoreFoundation 0x017c41cb __CFRunLoopDoSources0 + 235
30 CoreFoundation 0x017e129e __CFRunLoopRun + 910
31 CoreFoundation 0x017e0ac3 CFRunLoopRunSpecific + 467
32 CoreFoundation 0x017e08db CFRunLoopRunInMode + 123
33 GraphicsServices 0x037e09e2 GSEventRunModal + 192
34 GraphicsServices 0x037e0809 GSEventRun + 104
35 UIKit 0x0032cd3b UIApplicationMain + 1225
36 Swepple 0x0000e04d main + 141
37 libdyld.dylib 0x01d7c70d start + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb)
You probably meant
Dayh = [NSArray arrayWithObjects:Day11, nil];
At present, Dayh is an array containing the string "Day11", not the text field.

Resources