0

I'm fighting with a crash in my app but I can't find where it happens. I'm working with last version of MZFormSheetController. When I receive a remote push I present a basic MZFormSheetController, it was working nice but from one day to the other it starts crashing with a weird stack trace :

Fatal Exception: NSInvalidArgumentException
*** -[__NSArrayM insertObject:atIndex:]: object cannot be nil

Thread : Fatal Exception: NSInvalidArgumentException
0  CoreFoundation       0x2bfc2fef __exceptionPreprocess + 126
1  libobjc.A.dylib      0x3a274c8b objc_exception_throw + 38
2  CoreFoundation       0x2bedcefb -[__NSArrayM insertObject:atIndex:] + 638
3  UIKit                0x2fb6289f __workaround10030904InvokeWithTarget_block_invoke + 14
4  UIKit                0x2f8b2ab1 +[UIView _performSystemAppearanceModifications:] + 32
5  UIKit                0x2f780639 workaround10030904InvokeWithTarget + 704
6  UIKit                0x2fb5ff3b applyInvocationsToTarget + 1242
7  UIKit                0x2f6bdd8f +[_UIAppearance _applyInvocationsTo:window:matchingSelector:] + 1262
8  UIKit                0x2f6bd89b +[_UIAppearance _applyInvocationsTo:window:] + 30
9  UIKit                0x2f8bc353 __88-[UIView(Internal) _performUpdatesForPossibleChangesOfIdiom:orScreen:traverseHierarchy:]_block_invoke + 54
10 UIKit                0x2f8bc2cb -[UIView(Internal) _performUpdatesForPossibleChangesOfIdiom:orScreen:traverseHierarchy:] + 262
11 UIKit                0x2f61cf07 -[UIView(Internal) _didChangeFromIdiom:onScreen:traverseHierarchy:] + 30
12 UIKit                0x2f633f0f -[UIScrollView _didChangeFromIdiom:onScreen:traverseHierarchy:] + 46
13 UIKit                0x2f8bc1b7 -[UIView(Internal) _didChangeFromIdiomOnScreen:traverseHierarchy:] + 138
14 UIKit                0x2f61497d -[UIView(Internal) _didMoveFromWindow:toWindow:] + 1316
15 UIKit                0x2f633dfb -[UIScrollView _didMoveFromWindow:toWindow:] + 50
16 UIKit                0x2f6146fb -[UIView(Internal) _didMoveFromWindow:toWindow:] + 674
17 UIKit                0x2f6146fb -[UIView(Internal) _didMoveFromWindow:toWindow:] + 674
18 UIKit                0x2f613fa7 __45-[UIView(Hierarchy) _postMovedFromSuperview:]_block_invoke + 114
19 UIKit                0x2f613ec1 -[UIView(Hierarchy) _postMovedFromSuperview:] + 428
20 UIKit                0x2f61e72b -[UIView(Internal) _addSubview:positioned:relativeTo:] + 1498
21 UIKit                0x2f61e14b -[UIView(Hierarchy) addSubview:] + 30
22 UIKit                0x2f61db69 -[UIWindow addRootViewControllerViewIfPossible] + 432
23 UIKit                0x2f61b3a1 -[UIWindow _setHidden:forced:] + 272
24 UIKit                0x2f6864a1 -[UIWindow makeKeyAndVisible] + 48
25 Project              0x000f382d -[MZFormSheetController presentAnimated:completionHandler:] (MZFormSheetController.m:509)
26 Project              0x0021b879 __60+[ARDPopupManager showFormsheet:animated:completionHandler:]_block_invoke_2 (ARDPopupManager.m:46)
27 libdispatch.dylib    0x3a7e9ecd _dispatch_barrier_sync_f_slow_invoke + 372
28 libdispatch.dylib    0x3a7df2cf _dispatch_client_callout + 22
29 libdispatch.dylib    0x3a7e2d2f _dispatch_main_queue_callback_4CF + 1330
30 CoreFoundation       0x2bf88609 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 8
31 CoreFoundation       0x2bf86d09 __CFRunLoopRun + 1512
32 CoreFoundation       0x2bed3201 CFRunLoopRunSpecific + 476
33 CoreFoundation       0x2bed3013 CFRunLoopRunInMode + 106
34 GraphicsServices     0x337b2201 GSEventRunModal + 136
35 UIKit                0x2f677a59 UIApplicationMain + 1440
36 Project              0x0007a88d main (main.m:14)
37 libdyld.dylib        0x3a800aaf start + 2

Of course I understand the crash but the exception breakpoint stops at this line :

[self.formSheetWindow makeKeyAndVisible];

In MZFormSheetController library and the MZFormSheetController is presented from my code like :

[formsheet presentAnimated:animated completionHandler:nil];

I added an All Exception Breakpoint but it does not point to an addObject: or insertObject:atIndex: method. Maybe it is elsewhere but I can't figure it out. I can't find the NSArray causing this crash.

2 Answers 2

3

Finally found : in the view controller presented in form sheet controller I added an UITextView and in my AppDelegate I wrote [[UITextView appearance] setKeyboardAppearance:UIKeyboardAppearanceDark]; and it crashes when I present the UITextView. So I had to set keyboard appearance individually on each UITextView instances storyboard or code...

Sign up to request clarification or add additional context in comments.

1 Comment

Awesome 3 hours of debugging comes to end with silly issue. Just commented both and issue resolved. [[UITextView appearance] setKeyboardAppearance:UIKeyboardAppearanceDefault]; [[UITextView appearance] setIndicatorStyle:UIScrollViewIndicatorStyleBlack];
0

I think it will solve problem.

YourViewController *objVc = [[YourViewController alloc] init]; // or you can use initWithNib
// Your remaining code

MZFormSheetController *formSheet = [[MZFormSheetController alloc]initWithViewController:objVc];
formSheet.transitionStyle = MZFormSheetTransitionStyleSlideFromBottom; //try different style
formSheet.presentedFormSheetSize = CGSizeMake(320, self.view.frame.size.height);
formSheet.willPresentCompletionHandler = ^(UIViewController *presentedFSViewController)
{
    presentedFSViewController.view.autoresizingMask = presentedFSViewController.view.autoresizingMask | UIViewAutoresizingFlexibleWidth;
};
formSheet.shouldCenterVertically = YES;
[formSheet presentAnimated:YES completionHandler:^(UIViewController *presentedFSViewController){ }];

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.