First, I got 3 different UIViews to replace the detail view in Split View Controller on iPad storyboard
It runs on well on iOS8 iPad. But when I load one of the detail views, the app crashes when running in iOS7 and iOS 6 Simulator.
I only assume it is because of Auto layout on my Storyboard.
Does anyone know how to fix it?
2014-09-25 04:15:19.705 PSTappsperance[48327:60b] Pad AppDelegate ########
2014-09-25 04:15:27.869 PSTappsperance[48327:60b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Unable to create description in descriptionForLayoutAttribute_layoutItem_coefficient. Something is nil'
*** First throw call stack:
(
0 CoreFoundation 0x0000000110a5c495 __exceptionPreprocess + 165
1 libobjc.A.dylib 0x00000001107af99e objc_exception_throw + 43
2 CoreFoundation 0x0000000110a5c2ad +[NSException raise:format:] + 205
3 Foundation 0x00000001104ec548 descriptionForLayoutAttribute_layoutItem_coefficient + 145
4 Foundation 0x00000001104ec3bc -[NSLayoutConstraint equationDescription] + 216
5 Foundation 0x00000001104ec831 -[NSLayoutConstraint description] + 297
6 CoreFoundation 0x0000000110a1d1b9 -[NSArray descriptionWithLocale:indent:] + 345
7 Foundation 0x000000011037e14e _NSDescriptionWithLocaleFunc + 64
8 CoreFoundation 0x00000001109e1244 __CFStringAppendFormatCore + 7252
9 CoreFoundation 0x0000000110a1f913 _CFStringCreateWithFormatAndArgumentsAux + 115
10 CoreFoundation 0x0000000110a7fa5b _CFLogvEx + 123
11 Foundation 0x00000001103ae276 NSLogv + 79
12 Foundation 0x00000001103ae20a NSLog + 148
13 UIKit 0x000000010f927097 -[UIView(UIConstraintBasedLayout_EngineDelegate) engine:willBreakConstraint:dueToMutuallyExclusiveConstraints:] + 62
14 Foundation 0x00000001104e32ac -[NSISEngine handleUnsatisfiableRowWithHead:body:usingInfeasibilityHandlingBehavior:mutuallyExclusiveConstraints:] + 521
15 Foundation 0x00000001104e49b1 -[NSISEngine tryUsingArtificialVariableToAddConstraintWithMarker:rowBody:usingInfeasibilityHandlingBehavior:mutuallyExclusiveConstraints:] + 353
16 Foundation 0x000000011039c26b -[NSISEngine tryToAddConstraintWithMarker:expression:integralizationAdjustment:mutuallyExclusiveConstraints:] + 663
17 Foundation 0x00000001104ed180 -[NSLayoutConstraint _addLoweredExpression:toEngine:integralizationAdjustment:lastLoweredConstantWasRounded:mutuallyExclusiveConstraints:] + 275
18 Foundation 0x00000001103981b0 -[NSLayoutConstraint _addToEngine:integralizationAdjustment:mutuallyExclusiveConstraints:] + 204
19 UIKit 0x000000010f923f41 __57-[UIView(AdditionalLayoutSupport) _switchToLayoutEngine:]_block_invoke_2 + 413
20 Foundation 0x00000001104e529a -[NSISEngine withBehaviors:performModifications:] + 119
21 UIKit 0x000000010f923d7d __57-[UIView(AdditionalLayoutSupport) _switchToLayoutEngine:]_block_invoke + 401
22 UIKit 0x000000010f923bc3 -[UIView(AdditionalLayoutSupport) _switchToLayoutEngine:] + 197
23 UIKit 0x000000010f923e57 __57-[UIView(AdditionalLayoutSupport) _switchToLayoutEngine:]_block_invoke_2 + 179
24 Foundation 0x00000001104e529a -[NSISEngine withBehaviors:performModifications:] + 119
25 UIKit 0x000000010f923d7d __57-[UIView(AdditionalLayoutSupport) _switchToLayoutEngine:]_block_invoke + 401
26 UIKit 0x000000010f923bc3 -[UIView(AdditionalLayoutSupport) _switchToLayoutEngine:] + 197
27 UIKit 0x000000010f3ab975 __45-[UIView(Hierarchy) _postMovedFromSuperview:]_block_invoke + 95
28 Foundation 0x00000001104e529a -[NSISEngine withBehaviors:performModifications:] + 119
29 UIKit 0x000000010f3ab889 -[UIView(Hierarchy) _postMovedFromSuperview:] + 321
30 UIKit 0x000000010f3b52ac -[UIView(Internal) _addSubview:positioned:relativeTo:] + 1508
31 UIKit 0x000000010f632778 -[UINavigationTransitionView transition:fromView:toView:] + 454
32 UIKit 0x000000010f6325b0 -[UINavigationTransitionView transition:toView:] + 25
33 UIKit 0x000000010f46f4d7 -[UINavigationController _startTransition:fromViewController:toViewController:] + 2893
34 UIKit 0x000000010f46f787 -[UINavigationController _startDeferredTransitionIfNeeded:] + 547
35 UIKit 0x000000010f470238 -[UINavigationController __viewWillLayoutSubviews] + 43
36 UIKit 0x000000010f58a895 -[UILayoutContainerView layoutSubviews] + 202
37 UIKit 0x000000010f3b7993 -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 354
38 QuartzCore 0x000000011427c802 -[CALayer layoutSublayers] + 151
39 QuartzCore 0x0000000114271369 _ZN2CA5Layer16layout_if_neededEPNS_11TransactionE + 363
40 QuartzCore 0x00000001142711ea _ZN2CA5Layer28layout_and_display_if_neededEPNS_11TransactionE + 24
41 QuartzCore 0x00000001141e4fb8 _ZN2CA7Context18commit_transactionEPNS_11TransactionE + 252
42 QuartzCore 0x00000001141e6030 _ZN2CA11Transaction6commitEv + 394
43 QuartzCore 0x00000001141e669d _ZN2CA11Transaction17observer_callbackEP19__CFRunLoopObservermPv + 89
44 CoreFoundation 0x0000000110a27dc7 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 23
45 CoreFoundation 0x0000000110a27d37 __CFRunLoopDoObservers + 391
46 CoreFoundation 0x0000000110a07522 __CFRunLoopRun + 946
47 CoreFoundation 0x0000000110a06d83 CFRunLoopRunSpecific + 467
48 GraphicsServices 0x0000000112dbdf04 GSEventRunModal + 161
49 UIKit 0x000000010f357e33 UIApplicationMain + 1010
50 PSTappsperance 0x000000010f092653 main + 115
51 libdyld.dylib 0x00000001114b05fd start + 1
52 ??? 0x0000000000000001 0x0 + 1
)libc++abi.dylib: terminating with uncaught exception of type NSException
This crash appears when you run your app with Margins and baselines in constraints on iOS 7
.
Xcode
doesn't highlight all these constraints correctly in Interface Builder
, so you can use this solution:
Xcode
(\w)Margin"
and replace all of them with the pattern: \1"
(the regex version is the one used in Sublime 2)
.*"baseline".*\n
Xcode
Update: I found that "baseline" constraints causes crashes also, but Xcode doesn't show any warnings about these constrains!
Solved. It was because of Auto Layout constraints.
There were Labels that did not know to determine its width.
But why only works on iOS 8? I pinned two constraints to determine the width in Xcode 6
Trailing Space to: superview
Leading Space to: superview
when pinning constraints, there is an option 'Constraint to Margin', which is checked by default in Xcode 6. And Older versions does not support that.
You are right @Kyle. This is causing due to Auto Layout constraints. @Mazen, In my case too it was "First Baseline Alignment", removed it and worked. Here are some checks to detect/solve the problem.
To detect which storyboard causing this error you can perform a quick check. In "File Inspector", Uncheck the "Use Auto Layout" for the selected storyboard. Now, clean and build your application. If still getting the same error means the constraint causing this error is in another storyboard or in code.
Once you identify the storyboard, resolve the errors and warnings displayed by storyboard using Add Missing Constraints or other similar options.
To filter which constraint causing this error. Remove 3-4 constraints at a time(you can remove more to make it fast) to check if the error resolved. Once error resolved, identify the exact constraint which was causing this error.
Regarding "Constraint to Margin". In my case this is checked in few constraints but its not causing any error/warning below iOS8.
You can use this link to resolve auto layout issues. Resolving Auto Layout Issues
Hope this will help someone.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With