I have three views that inherit from the UITableViewController class. The first one shows a list of locations, the second one shows a map with an annotation that represent the location of the row selected at the first view, the last one shows information about the location (address, image, ...). Some times when I push the back button into the second view, I get this error message.
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSArrayI leftCapWidth]: unrecognized selector sent to instance 0x6b57110'
*** Call stack at first throw:
(
0 CoreFoundation 0x02576919 __exceptionPreprocess + 185
1 libobjc.A.dylib 0x026c45de objc_exception_throw + 47
2 CoreFoundation 0x0257842b -[NSObject(NSObject) doesNotRecognizeSelector:] + 187
3 CoreFoundation 0x024e8116 ___forwarding___ + 966
4 CoreFoundation 0x024e7cd2 _CF_forwarding_prep_0 + 50
5 UIKit 0x003935b9 -[UIImageView(UIImageViewInternal) _shouldDrawImage:] + 35
6 UIKit 0x00392f3a -[UIImageView(UIImageViewInternal开发者_JAVA百科) _canDrawContent] + 411
7 UIKit 0x00308f20 -[UIView(Internal) _didMoveFromWindow:toWindow:] + 955
8 UIKit 0x00308cfc -[UIView(Internal) _didMoveFromWindow:toWindow:] + 407
9 UIKit 0x00308cfc -[UIView(Internal) _didMoveFromWindow:toWindow:] + 407
10 UIKit 0x00308cfc -[UIView(Internal) _didMoveFromWindow:toWindow:] + 407
11 UIKit 0x0031119a -[UIScrollView _didMoveFromWindow:toWindow:] + 71
12 UIKit 0x00308cfc -[UIView(Internal) _didMoveFromWindow:toWindow:] + 407
13 UIKit 0x00307b10 -[UIView(Hierarchy) _postMovedFromSuperview:] + 166
14 UIKit 0x00300a34 -[UIView(Internal) _addSubview:positioned:relativeTo:] + 1080
15 UIKit 0x002fed87 -[UIView(Hierarchy) addSubview:] + 57
16 UIKit 0x0050a829 -[UINavigationTransitionView transition:fromView:toView:] + 551
17 UIKit 0x0050a28d -[UINavigationTransitionView transition:toView:] + 56
18 UIKit 0x00381329 -[UINavigationController _startDeferredTransitionIfNeeded] + 266
19 UIKit 0x00380fc7 -[UINavigationController _popViewControllerWithTransition:allowPoppingLast:] + 386
20 UIKit 0x00381141 -[UINavigationController popViewControllerAnimated:] + 57
21 UIKit 0x003805b6 -[UINavigationController navigationBar:shouldPopItem:] + 148
22 UIKit 0x00327143 -[UINavigationBar _popNavigationItemWithTransition:] + 116
23 UIKit 0x0032def3 -[UINavigationBar _handleMouseUpAtPoint:] + 605
24 UIKit 0x002f42ff -[UIWindow _sendTouchesForEvent:] + 567
25 UIKit 0x002d61ec -[UIApplication sendEvent:] + 447
26 UIKit 0x002daac4 _UIApplicationHandleEvent + 7495
27 GraphicsServices 0x02ddcafa PurpleEventCallback + 1578
28 CoreFoundation 0x02557dc4 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 52
29 CoreFoundation 0x024b8737 __CFRunLoopDoSource1 + 215
30 CoreFoundation 0x024b59c3 __CFRunLoopRun + 979
31 CoreFoundation 0x024b5280 CFRunLoopRunSpecific + 208
32 CoreFoundation 0x024b51a1 CFRunLoopRunInMode + 97
33 GraphicsServices 0x02ddb2c8 GSEventRunModal + 217
34 GraphicsServices 0x02ddb38d GSEventRun + 115
35 UIKit 0x002deb58 UIApplicationMain + 1160
36 TravelGuideTemplate 0x00002730 main + 102
37 TravelGuideTemplate 0x000026c1 start + 53
)
terminate called after throwing an instance of 'NSException'
I do not why I am getting this message. Could someone help me?
Thanks for reading.
I bet 1$ this is a memory management issue. I think your app tries to access an object which was released earlier.
Enable NSZombie and see if this changes the error message:
- double click the executable in the executables group
- open the second tab,
arguments
- under
Variables to be set in the environment
add a variable namedNSZombieEnabled
, with a value ofYES
, and enable it by ticking the checkbox in front of it. - Run your program again
- ??
- profit
精彩评论