“This UIView seems to be the delegate of an NSISVa

2019-03-14 05:19发布

问题:

I am working on an opengl project. I have used some images (2 for x-y scales) and labels (8) to display the scale on the screen. My first view is a tableview from which I go to openglView. But whenever I go back from openglView to the tableView it gives me this error and app crashes.

"This UIView seems to be the delegate of an NSISVariable it doesn't know anything about. This is an internal UIKit bug."

ANY Suggestions? Is this happening because I am including too many UI elements, other than those images and labels I have used some buttons also. And I am applying affineTransform to those images and labels and one button also.

Exact error is:

2013-01-31 12:20:18.743 EMtouch[50496:12203] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '{ Rows:
    UILayoutContainerView:0x9835660.Height == 480 + 1*0x7e53030.marker + 1*0x7e546c0.marker
    UILayoutContainerView:0x9835660.Width == 320 + 1*0x7e52f90.marker + 1*0x7e54330.marker
    UILayoutContainerView:0x9835660.minX == 0 + 1*0x7e52ca0.marker + -0.5*0x7e52f90.marker
    UILayoutContainerView:0x9835660.minY == 0 + 1*0x7e52fd0.marker + -0.5*0x7e53030.marker
    UINavigationTransitionView:0x9837ea0.Height == 480 + 1*0x7e51bf0.marker + 1*0x7e53030.marker + 1*0x7e546c0.marker
    UINavigationTransitionView:0x9837ea0.Width == 320 + 1*0x7e519c0.marker + 1*0x7e52f90.marker + 1*0x7e54330.marker
    UINavigationTransitionView:0x9837ea0.minX == 0 + 1*0x7e51940.marker + -0.5*0x7e519c0.marker
    UINavigationTransitionView:0x9837ea0.minY == 0 + 1*0x7e51b80.marker + -0.5*0x7e51bf0.marker
    UIWindow:0x7e1aea0.Height == 480 + 1*0x7e546c0.marker
    UIWindow:0x7e1aea0.Width == 320 + 1*0x7e54330.marker
    UIWindow:0x7e1aea0.minX == 0 + -0.5*0x7e54330.marker + 1*0x7e54410.marker
    UIWindow:0x7e1aea0.minY == 0 + 1*0x7e542d0.marker + -0.5*0x7e546c0.marker
    objective == <250:-0.000579834> + <250:-9.72015e-08>*UILabel:0x7b44bf0.Width + <250:9.72015e-08>*UILabel:0x7b45100.Width

  Constraints:
    <NSAutoresizingMaskLayoutConstraint:0x7e51940 h=-&- v=-&- UINavigationTransitionView:0x9837ea0.midX == UILayoutContainerView:0x9835660.midX>        Marker:0x7e51940.marker
    <NSAutoresizingMaskLayoutConstraint:0x7e519c0 h=-&- v=-&- UINavigationTransitionView:0x9837ea0.width == UILayoutContainerView:0x9835660.width>      Marker:0x7e519c0.marker
    <NSAutoresizingMaskLayoutConstraint:0x7e51b80 h=-&- v=-&- UINavigationTransitionView:0x9837ea0.midY == UILayoutContainerView:0x9835660.midY>        Marker:0x7e51b80.marker
    <NSAutoresizingMaskLayoutConstraint:0x7e51bf0 h=-&- v=-&- UINavigationTransitionView:0x9837ea0.height == UILayoutContainerView:0x9835660.height>        Marker:0x7e51bf0.marker
    <NSAutoresizingMaskLayoutConstraint:0x7e52ca0 h=-&- v=-&- UILayoutContainerView:0x9835660.midX == UIWindow:0x7e1aea0.midX>      Marker:0x7e52ca0.marker
    <NSAutoresizingMaskLayoutConstraint:0x7e52f90 h=-&- v=-&- UILayoutContainerView:0x9835660.width == UIWindow:0x7e1aea0.width>        Marker:0x7e52f90.marker
    <NSAutoresizingMaskLayoutConstraint:0x7e52fd0 h=-&- v=-&- UILayoutContainerView:0x9835660.midY == UIWindow:0x7e1aea0.midY>      Marker:0x7e52fd0.marker
    <NSAutoresizingMaskLayoutConstraint:0x7e53030 h=-&- v=-&- UILayoutContainerView:0x9835660.height == UIWindow:0x7e1aea0.height>      Marker:0x7e53030.marker
    <NSAutoresizingMaskLayoutConstraint:0x7e54330 h=--- v=--- H:[UIWindow:0x7e1aea0(320)]>      Marker:0x7e54330.marker
    <NSAutoresizingMaskLayoutConstraint:0x7e546c0 h=--- v=--- V:[UIWindow:0x7e1aea0(480)]>      Marker:0x7e546c0.marker
    <_UIWindowAnchoringConstraint:0x7e542d0 h=--- v=--- UIWindow:0x7e1aea0.midY == + 240>       Marker:0x7e542d0.marker
    <_UIWindowAnchoringConstraint:0x7e54410 h=--- v=--- UIWindow:0x7e1aea0.midX == + 160>       Marker:0x7e54410.marker
}: internal error.  Cannot find an outgoing row head for incoming head UILabel:0x7b44bf0.Width, which should never happen.'
*** First throw call stack:
(0x1fb1012 0x19f4e7e 0x1fb0deb 0x1599609 0x159c64f 0x159c753 0xe7e8f9 0x982b24 0x982783 0xbba3fe 0xbba698 0x97a3b6 0x97a554 0x28f7d8 0x1c2b014 0x1c1b7d5 0x1f57af5 0x1f56f44 0x1f56e1b 0x34d37e3 0x34d3668 0x93c65c 0xc56d 0x2b35 0x1)
libc++abi.dylib: terminate called throwing an exception

回答1:

"tableview from which I go to openglView" - this statement combined with usage of affine transform suggest that you are not using standard navigation and try to move views and use Autolayout simultaneously.

This crash is related to the contrary set of constraints, I guess you are applying affine transform and thus mess up with some frames. Try to modify constraints constants instead of using any transforms.