使用 UIAlertView 时出现奇怪的 SIGABRT(无法识别的选择器发送到实例)
在过去的半个小时里,我一直在研究这个问题,所以我想我应该向 Stack Overflow 上的朋友们请教一些智慧。
我有一个标签栏应用程序,其中包含根视图控制器,并将视图传递给其他 xib。我创建了一个自定义 XIB,并将其视图控制器类 (MoreViewController
) 添加为 Interface Builder 中的外部对象
。当我链接方法时,使用 UIButton
调用该方法时出现 SIGABRT
错误:
Method
- (IBAction)showAbout {
alert = [[[UIAlertView alloc] initWithTitle:@"About" message:@"yadda yadda yadda some message" delegate:self cancelButtonTitle:@"Dismiss" otherButtonTitles:nil] autorelease];
[alert show];
}
Stack
2010-09-17 18:01:40.714 <appname>[7963:207] -[__NSCFType showAbout]: unrecognized selector sent to instance 0x5f6ef10
2010-09-17 18:01:40.716 <appname>[7963:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFType showAbout]: unrecognized selector sent to instance 0x5f6ef10'
*** Call stack at first throw:
(
0 CoreFoundation 0x0247eb99 __exceptionPreprocess + 185
1 libobjc.A.dylib 0x025ce40e objc_exception_throw + 47
2 CoreFoundation 0x024806ab -[NSObject(NSObject) doesNotRecognizeSelector:] + 187
3 CoreFoundation 0x023f02b6 ___forwarding___ + 966
4 CoreFoundation 0x023efe72 _CF_forwarding_prep_0 + 50
5 UIKit 0x002b07f8 -[UIApplication sendAction:to:from:forEvent:] + 119
6 UIKit 0x0033bde0 -[UIControl sendAction:to:forEvent:] + 67
7 UIKit 0x0033e262 -[UIControl(Internal) _sendActionsForEvents:withEvent:] + 527
8 UIKit 0x0033ce0f -[UIControl touchesEnded:withEvent:] + 458
9 UIKit 0x002d43d0 -[UIWindow _sendTouchesForEvent:] + 567
10 UIKit 0x002b5cb4 -[UIApplication sendEvent:] + 447
11 UIKit 0x002ba9bf _UIApplicationHandleEvent + 7672
12 GraphicsServices 0x02d5e822 PurpleEventCallback + 1550
13 CoreFoundation 0x0245fff4 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 52
14 CoreFoundation 0x023c0807 __CFRunLoopDoSource1 + 215
15 CoreFoundation 0x023bda93 __CFRunLoopRun + 979
16 CoreFoundation 0x023bd350 CFRunLoopRunSpecific + 208
17 CoreFoundation 0x023bd271 CFRunLoopRunInMode + 97
18 GraphicsServices 0x02d5d00c GSEventRunModal + 217
19 GraphicsServices 0x02d5d0d1 GSEventRun + 115
20 UIKit 0x002beaf2 UIApplicationMain + 1160
21 <appname> 0x00001b30 main + 102
22 <appname> 0x00001ac1 start + 53
)
terminate called after throwing an instance of 'NSException'
Program received signal: “SIGABRT”.
[Switching to process 7963]
(gdb)
Can有人对此有所了解吗?
提前致谢!
编辑 好吧,我已经启用了 NSZombie 并且...我收到了一个不太神秘的错误!呜呼!
2010-09-17 18:48:56.576 <appname>[8088:207] *** -[MoreViewController performSelector:withObject:withObject:]: message sent to deallocated instance 0x5fa98e0
编辑2使用Instruments的僵尸模式,我成功地发现了内存地址的内容,如下所示:
# Category Event Type RefCt Timestamp Address Size Responsible Library Responsible Caller
0 MoreViewController Malloc 1 2968170752 0x5fa5ee0 144 UIKit -[UIClassSwapper initWithCoder:]
1 MoreViewController Retain 2 2968226816 0x5fa5ee0 0 UIKit -[UIRuntimeConnection initWithCoder:]
2 MoreViewController Retain 3 2968229888 0x5fa5ee0 0 Foundation -[NSKeyedUnarchiver _replaceObject:withObject:]
3 MoreViewController Release 2 2968232704 0x5fa5ee0 0 UIKit -[UIRuntimeConnection initWithCoder:]
4 MoreViewController Retain 3 2968236800 0x5fa5ee0 0 UIKit -[UIRuntimeConnection initWithCoder:]
5 MoreViewController Autorelease 2968259840 0x5fa5ee0 0 UIKit -[UIRuntimeConnection initWithCoder:]
6 MoreViewController Retain 4 2968262912 0x5fa5ee0 0 UIKit -[UIRuntimeConnection initWithCoder:]
7 MoreViewController Retain 5 2968322816 0x5fa5ee0 0 UIKit -[UIRuntimeConnection initWithCoder:]
8 MoreViewController Autorelease 2968324864 0x5fa5ee0 0 UIKit -[UIRuntimeConnection initWithCoder:]
9 MoreViewController Retain 6 2968331776 0x5fa5ee0 0 UIKit -[UIRuntimeConnection initWithCoder:]
10 MoreViewController Retain 7 2986161920 0x5fa5ee0 0 UIKit -[UIRuntimeConnection initWithCoder:]
11 MoreViewController Autorelease 2986163712 0x5fa5ee0 0 UIKit -[UIRuntimeConnection initWithCoder:]
12 MoreViewController Retain 8 2986166784 0x5fa5ee0 0 UIKit -[UIRuntimeConnection initWithCoder:]
13 MoreViewController Retain 9 2986367744 0x5fa5ee0 0 UIKit -[UIRuntimeConnection initWithCoder:]
14 MoreViewController Autorelease 2986369792 0x5fa5ee0 0 UIKit -[UIRuntimeConnection initWithCoder:]
15 MoreViewController Retain 10 2986371840 0x5fa5ee0 0 UIKit -[UIRuntimeConnection initWithCoder:]
16 MoreViewController Release 9 2986498816 0x5fa5ee0 0 UIKit -[UINib instantiateWithOwner:options:]
17 MoreViewController Release 8 2986510848 0x5fa5ee0 0 UIKit -[UINib instantiateWithOwner:options:]
18 MoreViewController Release 7 2986524928 0x5fa5ee0 0 UIKit -[UINib instantiateWithOwner:options:]
19 MoreViewController Release 6 2986529792 0x5fa5ee0 0 UIKit -[UINib instantiateWithOwner:options:]
20 MoreViewController Retain 7 2986635008 0x5fa5ee0 0 Foundation -[NSKeyedUnarchiver _decodeArrayOfObjectsForKey:]
21 MoreViewController Retain 8 2986648832 0x5fa5ee0 0 Foundation -[NSKeyedUnarchiver _decodeArrayOfObjectsForKey:]
22 MoreViewController Release 7 2986650880 0x5fa5ee0 0 Foundation -[NSKeyedUnarchiver _decodeArrayOfObjectsForKey:]
23 MoreViewController Retain 8 2986679040 0x5fa5ee0 0 Foundation -[NSArray(NSArray) initWithCoder:]
24 MoreViewController Release 7 2986705920 0x5fa5ee0 0 UIKit -[UINib instantiateWithOwner:options:]
25 MoreViewController Retain 8 2986823936 0x5fa5ee0 0 Foundation -[NSKeyedUnarchiver _decodeArrayOfObjectsForKey:]
26 MoreViewController Retain 9 2986860800 0x5fa5ee0 0 Foundation -[NSKeyedUnarchiver _decodeArrayOfObjectsForKey:]
27 MoreViewController Release 8 2986900736 0x5fa5ee0 0 Foundation -[NSKeyedUnarchiver _decodeArrayOfObjectsForKey:]
28 MoreViewController Retain 9 2986923776 0x5fa5ee0 0 Foundation -[NSArray(NSArray) initWithCoder:]
29 MoreViewController Release 8 2986969856 0x5fa5ee0 0 UIKit -[UINib instantiateWithOwner:options:]
30 MoreViewController Retain 9 2987261952 0x5fa5ee0 0 UIKit -[UINib instantiateWithOwner:options:]
31 MoreViewController Release 8 2987425792 0x5fa5ee0 0 Foundation -[NSKeyedUnarchiver dealloc]
32 MoreViewController Release 7 2987520000 0x5fa5ee0 0 Foundation -[NSKeyedUnarchiver dealloc]
33 MoreViewController Release 6 2987686656 0x5fa5ee0 0 Foundation -[NSKeyedUnarchiver dealloc]
34 MoreViewController Release 5 2987698944 0x5fa5ee0 0 Foundation -[NSKeyedUnarchiver dealloc]
35 MoreViewController Release 4 2987756032 0x5fa5ee0 0 UIKit -[UIRuntimeConnection dealloc]
36 MoreViewController Release 3 2987793920 0x5fa5ee0 0 UIKit -[UIRuntimeConnection dealloc]
37 MoreViewController Release 2 2987811840 0x5fa5ee0 0 UIKit -[UIRuntimeConnection dealloc]
38 MoreViewController Release 1 2987849984 0x5fa5ee0 0 UIKit -[UIRuntimeConnection dealloc]
39 MoreViewController Release 0 2994390016 0x5fa5ee0 0 Foundation -[NSAutoreleasePool release]
40 MoreViewController Zombie -1 6312182784 0x5fa5ee0 0 UIKit -[UIApplication sendAction:to:from:forEvent:]
我确实注意到之前调用了-[NSAutoreleasePool release]
-[UIApplication sendAction:to:from:forEvent:]
...这可能是我的问题吗?我该如何解决这个问题?
再次感谢您的回复,每个人都有帮助。
编辑4
来自info malloc
命令的输出:
2010-09-17 19:41:57.305 <appname>[8440:207] *** -[MoreViewController performSelector:withObject:withObject:]: message sent to deallocated instance 0x63ae170
[Switching to process 8440]
(gdb) info malloc 0x63ae170
Alloc: Block address: 0x063ae170 length: 132
Stack - pthread: 0xa0541500 number of frames: 49
0: 0x947170c3 in malloc_zone_calloc
1: 0x9471701a in calloc
2: 0x25cdb5b in _internal_class_createInstanceFromZone
3: 0x25d07a6 in class_createInstance
4: 0x23a3108 in +[NSObject(NSObject) allocWithZone:]
5: 0x23a2f0a in +[NSObject(NSObject) alloc]
6: 0x4a6039 in -[UIClassSwapper initWithCoder:]
7: 0x1669c in _decodeObjectBinary
8: 0x15809 in _decodeObject
9: 0x4a5d77 in -[UIRuntimeConnection initWithCoder:]
10: 0x4a62e5 in -[UIRuntimeEventConnection initWithCoder:]
11: 0x1669c in _decodeObjectBinary
12: 0x1746d in -[NSKeyedUnarchiver _decodeArrayOfObjectsForKey:]
13: 0x17a9c in -[NSArray(NSArray) initWithCoder:]
14: 0x1669c in _decodeObjectBinary
15: 0x15809 in _decodeObject
16: 0x4a5034 in -[UINib instantiateWithOwner:options:]
17: 0x4a6eb5 in -[NSBundle(UINSBundleAdditions) loadNibNamed:owner:options:]
18: 0x35c95f in -[UIViewController _loadViewFromNibNamed:bundle:]
19: 0x35a675 in -[UIViewController loadView]
20: 0x35a54f in -[UIViewController view]
21: 0x36c73e in -[UITabBarController transitionFromViewController:toViewController:transition:shouldSetSelected:]
22: 0x36b2b2 in -[UITabBarController transitionFromViewController:toViewController:]
23: 0x36d08c in -[UITabBarController _setSelectedViewController:]
24: 0x36cefb in -[UITabBarController _tabBarItemClicked:]
25: 0x2b07f8 in -[UIApplication sendAction:to:from:forEvent:]
26: 0x4ad2d0 in -[UITabBar _sendAction:withEvent:]
27: 0x2b07f8 in -[UIApplication sendAction:to:from:forEvent:]
28: 0x33bde0 in -[UIControl sendAction:to:forEvent:]
29: 0x33e262 in -[UIControl(Internal) _sendActionsForEvents:withEvent:]
30: 0x33bd97 in -[UIControl sendActionsForControlEvents:]
31: 0x2b07f8 in -[UIApplication sendAction:to:from:forEvent:]
32: 0x33bde0 in -[UIControl sendAction:to:forEvent:]
33: 0x33e262 in -[UIControl(Internal) _sendActionsForEvents:withEvent:]
34: 0x33ce0f in -[UIControl touchesEnded:withEvent:]
35: 0x2d43d0 in -[UIWindow _sendTouchesForEvent:]
36: 0x2b5cb4 in -[UIApplication sendEvent:]
37: 0x2ba9bf in _UIApplicationHandleEvent
38: 0x2d5e822 in PurpleEventCallback
39: 0x245fff4 in __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__
40: 0x23c0807 in __CFRunLoopDoSource1
41: 0x23bda93 in __CFRunLoopRun
42: 0x23bd350 in CFRunLoopRunSpecific
43: 0x23bd271 in CFRunLoopRunInMode
44: 0x2d5d00c in GSEventRunModal
45: 0x2d5d0d1 in GSEventRun
46: 0x2beaf2 in UIApplicationMain
47: 0x1a78 in main at /Users/Sean/Desktop/<appname>/main.m:13
48: 0x1a09 in start
编辑5
我还没有弄清楚这一点......可以有人帮忙吗?
I've been bashing my head in with this one for the past half hour, so I thought I'd ask my friends from Stack Overflow for some wisdom.
I've got a tab bar application with a view controller at the root, and passing off the views to other xib
s. I created a custom XIB and added its view controller class (MoreViewController
) as an External Object
in Interface Builder. When I link my methods, I get a SIGABRT
error when calling the method with a UIButton
:
Method
- (IBAction)showAbout {
alert = [[[UIAlertView alloc] initWithTitle:@"About" message:@"yadda yadda yadda some message" delegate:self cancelButtonTitle:@"Dismiss" otherButtonTitles:nil] autorelease];
[alert show];
}
Stack
2010-09-17 18:01:40.714 <appname>[7963:207] -[__NSCFType showAbout]: unrecognized selector sent to instance 0x5f6ef10
2010-09-17 18:01:40.716 <appname>[7963:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFType showAbout]: unrecognized selector sent to instance 0x5f6ef10'
*** Call stack at first throw:
(
0 CoreFoundation 0x0247eb99 __exceptionPreprocess + 185
1 libobjc.A.dylib 0x025ce40e objc_exception_throw + 47
2 CoreFoundation 0x024806ab -[NSObject(NSObject) doesNotRecognizeSelector:] + 187
3 CoreFoundation 0x023f02b6 ___forwarding___ + 966
4 CoreFoundation 0x023efe72 _CF_forwarding_prep_0 + 50
5 UIKit 0x002b07f8 -[UIApplication sendAction:to:from:forEvent:] + 119
6 UIKit 0x0033bde0 -[UIControl sendAction:to:forEvent:] + 67
7 UIKit 0x0033e262 -[UIControl(Internal) _sendActionsForEvents:withEvent:] + 527
8 UIKit 0x0033ce0f -[UIControl touchesEnded:withEvent:] + 458
9 UIKit 0x002d43d0 -[UIWindow _sendTouchesForEvent:] + 567
10 UIKit 0x002b5cb4 -[UIApplication sendEvent:] + 447
11 UIKit 0x002ba9bf _UIApplicationHandleEvent + 7672
12 GraphicsServices 0x02d5e822 PurpleEventCallback + 1550
13 CoreFoundation 0x0245fff4 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 52
14 CoreFoundation 0x023c0807 __CFRunLoopDoSource1 + 215
15 CoreFoundation 0x023bda93 __CFRunLoopRun + 979
16 CoreFoundation 0x023bd350 CFRunLoopRunSpecific + 208
17 CoreFoundation 0x023bd271 CFRunLoopRunInMode + 97
18 GraphicsServices 0x02d5d00c GSEventRunModal + 217
19 GraphicsServices 0x02d5d0d1 GSEventRun + 115
20 UIKit 0x002beaf2 UIApplicationMain + 1160
21 <appname> 0x00001b30 main + 102
22 <appname> 0x00001ac1 start + 53
)
terminate called after throwing an instance of 'NSException'
Program received signal: “SIGABRT”.
[Switching to process 7963]
(gdb)
Can someone shed some light on this?
Thanks in advance!
EDIT
Ok, I've enabled NSZombie and... I get a less cryptic error! Woohoo!
2010-09-17 18:48:56.576 <appname>[8088:207] *** -[MoreViewController performSelector:withObject:withObject:]: message sent to deallocated instance 0x5fa98e0
EDIT 2 With Instruments' Zombie Mode, I've managed to uncover the contents of the memory address, listed below:
# Category Event Type RefCt Timestamp Address Size Responsible Library Responsible Caller
0 MoreViewController Malloc 1 2968170752 0x5fa5ee0 144 UIKit -[UIClassSwapper initWithCoder:]
1 MoreViewController Retain 2 2968226816 0x5fa5ee0 0 UIKit -[UIRuntimeConnection initWithCoder:]
2 MoreViewController Retain 3 2968229888 0x5fa5ee0 0 Foundation -[NSKeyedUnarchiver _replaceObject:withObject:]
3 MoreViewController Release 2 2968232704 0x5fa5ee0 0 UIKit -[UIRuntimeConnection initWithCoder:]
4 MoreViewController Retain 3 2968236800 0x5fa5ee0 0 UIKit -[UIRuntimeConnection initWithCoder:]
5 MoreViewController Autorelease 2968259840 0x5fa5ee0 0 UIKit -[UIRuntimeConnection initWithCoder:]
6 MoreViewController Retain 4 2968262912 0x5fa5ee0 0 UIKit -[UIRuntimeConnection initWithCoder:]
7 MoreViewController Retain 5 2968322816 0x5fa5ee0 0 UIKit -[UIRuntimeConnection initWithCoder:]
8 MoreViewController Autorelease 2968324864 0x5fa5ee0 0 UIKit -[UIRuntimeConnection initWithCoder:]
9 MoreViewController Retain 6 2968331776 0x5fa5ee0 0 UIKit -[UIRuntimeConnection initWithCoder:]
10 MoreViewController Retain 7 2986161920 0x5fa5ee0 0 UIKit -[UIRuntimeConnection initWithCoder:]
11 MoreViewController Autorelease 2986163712 0x5fa5ee0 0 UIKit -[UIRuntimeConnection initWithCoder:]
12 MoreViewController Retain 8 2986166784 0x5fa5ee0 0 UIKit -[UIRuntimeConnection initWithCoder:]
13 MoreViewController Retain 9 2986367744 0x5fa5ee0 0 UIKit -[UIRuntimeConnection initWithCoder:]
14 MoreViewController Autorelease 2986369792 0x5fa5ee0 0 UIKit -[UIRuntimeConnection initWithCoder:]
15 MoreViewController Retain 10 2986371840 0x5fa5ee0 0 UIKit -[UIRuntimeConnection initWithCoder:]
16 MoreViewController Release 9 2986498816 0x5fa5ee0 0 UIKit -[UINib instantiateWithOwner:options:]
17 MoreViewController Release 8 2986510848 0x5fa5ee0 0 UIKit -[UINib instantiateWithOwner:options:]
18 MoreViewController Release 7 2986524928 0x5fa5ee0 0 UIKit -[UINib instantiateWithOwner:options:]
19 MoreViewController Release 6 2986529792 0x5fa5ee0 0 UIKit -[UINib instantiateWithOwner:options:]
20 MoreViewController Retain 7 2986635008 0x5fa5ee0 0 Foundation -[NSKeyedUnarchiver _decodeArrayOfObjectsForKey:]
21 MoreViewController Retain 8 2986648832 0x5fa5ee0 0 Foundation -[NSKeyedUnarchiver _decodeArrayOfObjectsForKey:]
22 MoreViewController Release 7 2986650880 0x5fa5ee0 0 Foundation -[NSKeyedUnarchiver _decodeArrayOfObjectsForKey:]
23 MoreViewController Retain 8 2986679040 0x5fa5ee0 0 Foundation -[NSArray(NSArray) initWithCoder:]
24 MoreViewController Release 7 2986705920 0x5fa5ee0 0 UIKit -[UINib instantiateWithOwner:options:]
25 MoreViewController Retain 8 2986823936 0x5fa5ee0 0 Foundation -[NSKeyedUnarchiver _decodeArrayOfObjectsForKey:]
26 MoreViewController Retain 9 2986860800 0x5fa5ee0 0 Foundation -[NSKeyedUnarchiver _decodeArrayOfObjectsForKey:]
27 MoreViewController Release 8 2986900736 0x5fa5ee0 0 Foundation -[NSKeyedUnarchiver _decodeArrayOfObjectsForKey:]
28 MoreViewController Retain 9 2986923776 0x5fa5ee0 0 Foundation -[NSArray(NSArray) initWithCoder:]
29 MoreViewController Release 8 2986969856 0x5fa5ee0 0 UIKit -[UINib instantiateWithOwner:options:]
30 MoreViewController Retain 9 2987261952 0x5fa5ee0 0 UIKit -[UINib instantiateWithOwner:options:]
31 MoreViewController Release 8 2987425792 0x5fa5ee0 0 Foundation -[NSKeyedUnarchiver dealloc]
32 MoreViewController Release 7 2987520000 0x5fa5ee0 0 Foundation -[NSKeyedUnarchiver dealloc]
33 MoreViewController Release 6 2987686656 0x5fa5ee0 0 Foundation -[NSKeyedUnarchiver dealloc]
34 MoreViewController Release 5 2987698944 0x5fa5ee0 0 Foundation -[NSKeyedUnarchiver dealloc]
35 MoreViewController Release 4 2987756032 0x5fa5ee0 0 UIKit -[UIRuntimeConnection dealloc]
36 MoreViewController Release 3 2987793920 0x5fa5ee0 0 UIKit -[UIRuntimeConnection dealloc]
37 MoreViewController Release 2 2987811840 0x5fa5ee0 0 UIKit -[UIRuntimeConnection dealloc]
38 MoreViewController Release 1 2987849984 0x5fa5ee0 0 UIKit -[UIRuntimeConnection dealloc]
39 MoreViewController Release 0 2994390016 0x5fa5ee0 0 Foundation -[NSAutoreleasePool release]
40 MoreViewController Zombie -1 6312182784 0x5fa5ee0 0 UIKit -[UIApplication sendAction:to:from:forEvent:]
I did notice that -[NSAutoreleasePool release]
is called before -[UIApplication sendAction:to:from:forEvent:]
... could that be my problem? How would I resolve that?
Thanks again for your responses, every one helps.
EDIT 4
Output from info malloc
command:
2010-09-17 19:41:57.305 <appname>[8440:207] *** -[MoreViewController performSelector:withObject:withObject:]: message sent to deallocated instance 0x63ae170
[Switching to process 8440]
(gdb) info malloc 0x63ae170
Alloc: Block address: 0x063ae170 length: 132
Stack - pthread: 0xa0541500 number of frames: 49
0: 0x947170c3 in malloc_zone_calloc
1: 0x9471701a in calloc
2: 0x25cdb5b in _internal_class_createInstanceFromZone
3: 0x25d07a6 in class_createInstance
4: 0x23a3108 in +[NSObject(NSObject) allocWithZone:]
5: 0x23a2f0a in +[NSObject(NSObject) alloc]
6: 0x4a6039 in -[UIClassSwapper initWithCoder:]
7: 0x1669c in _decodeObjectBinary
8: 0x15809 in _decodeObject
9: 0x4a5d77 in -[UIRuntimeConnection initWithCoder:]
10: 0x4a62e5 in -[UIRuntimeEventConnection initWithCoder:]
11: 0x1669c in _decodeObjectBinary
12: 0x1746d in -[NSKeyedUnarchiver _decodeArrayOfObjectsForKey:]
13: 0x17a9c in -[NSArray(NSArray) initWithCoder:]
14: 0x1669c in _decodeObjectBinary
15: 0x15809 in _decodeObject
16: 0x4a5034 in -[UINib instantiateWithOwner:options:]
17: 0x4a6eb5 in -[NSBundle(UINSBundleAdditions) loadNibNamed:owner:options:]
18: 0x35c95f in -[UIViewController _loadViewFromNibNamed:bundle:]
19: 0x35a675 in -[UIViewController loadView]
20: 0x35a54f in -[UIViewController view]
21: 0x36c73e in -[UITabBarController transitionFromViewController:toViewController:transition:shouldSetSelected:]
22: 0x36b2b2 in -[UITabBarController transitionFromViewController:toViewController:]
23: 0x36d08c in -[UITabBarController _setSelectedViewController:]
24: 0x36cefb in -[UITabBarController _tabBarItemClicked:]
25: 0x2b07f8 in -[UIApplication sendAction:to:from:forEvent:]
26: 0x4ad2d0 in -[UITabBar _sendAction:withEvent:]
27: 0x2b07f8 in -[UIApplication sendAction:to:from:forEvent:]
28: 0x33bde0 in -[UIControl sendAction:to:forEvent:]
29: 0x33e262 in -[UIControl(Internal) _sendActionsForEvents:withEvent:]
30: 0x33bd97 in -[UIControl sendActionsForControlEvents:]
31: 0x2b07f8 in -[UIApplication sendAction:to:from:forEvent:]
32: 0x33bde0 in -[UIControl sendAction:to:forEvent:]
33: 0x33e262 in -[UIControl(Internal) _sendActionsForEvents:withEvent:]
34: 0x33ce0f in -[UIControl touchesEnded:withEvent:]
35: 0x2d43d0 in -[UIWindow _sendTouchesForEvent:]
36: 0x2b5cb4 in -[UIApplication sendEvent:]
37: 0x2ba9bf in _UIApplicationHandleEvent
38: 0x2d5e822 in PurpleEventCallback
39: 0x245fff4 in __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__
40: 0x23c0807 in __CFRunLoopDoSource1
41: 0x23bda93 in __CFRunLoopRun
42: 0x23bd350 in CFRunLoopRunSpecific
43: 0x23bd271 in CFRunLoopRunInMode
44: 0x2d5d00c in GSEventRunModal
45: 0x2d5d0d1 in GSEventRun
46: 0x2beaf2 in UIApplicationMain
47: 0x1a78 in main at /Users/Sean/Desktop/<appname>/main.m:13
48: 0x1a09 in start
EDIT 5
I still haven't figured this out... can ANYONE help?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您收到此消息是因为您发送 showAbout: 的对象不响应该选择器。要么您指向了错误的目标,要么您的目标指针已被更改。
在没有看到更多代码的情况下很难说。如果您在 IB 中创建按钮,则可能没有正确连接插座。
编辑:根据您的新代码,您的 MoveViewController 对象似乎没有正确保留。要获取有关指定实例的信息,您可以像打开 NSZombieEnabled 一样打开 MallocStackLoggingNoCompact。当您收到错误时,您可以使用
或
这是一篇关于此类调试的好文章
http://www.friday.com/bbum/2010/01/10/using-malloc-to-debug-memory-misuse-in-cocoa/
You are getting this because the object you are sending showAbout: to doesn't respond to that selector. Either you are pointing the the wrong target, or your target's pointer is being changed.
It's tough to say without seeing a little more code. If you are creating the button in IB, you probably don't have your outlets hooked up properly.
Edit: Based on your new code, it looks like your MoveViewController object isn't being retained properly. To get info about the instance you specificed, you can turn on MallocStackLoggingNoCompact the same way you turned on NSZombieEnabled. When you get your error, you can use either
or
This is a great article for this kind of debugging
http://www.friday.com/bbum/2010/01/10/using-malloc-to-debug-memory-misuse-in-cocoa/
我没有找出原因,但通过将视图移动到一个
XIB
中解决了错误。不管怎样,谢谢。
I didn't figure out the cause, but the errors were resolved by moving the views into one
XIB
.Thanks anyway.