gpt4 book ai didi

iphone - EXC_BAD_ACCESS 无法识别的选择器发送到实例

转载 作者:行者123 更新时间:2023-12-03 21:10:52 28 4
gpt4 key购买 nike

//adds a button to scroll list  
-(void) addNode:(NSString *) atitle{
UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[btn setTitle:atitle forState:UIControlStateNormal];
[btn addTarget:self action:@selector(buttonTouched:) forControlEvents:UIControlEventTouchUpInside]; // handle touch
[buttons addObject:btn];
....
}

//a data button was pressed
-(void) buttonTouched:(id)sender{
int index = [buttons indexOfObject:sender];
NSString *key = [sender titleLabel].text;
}

@interface MainViewController : UIViewController <FlipsideViewControllerDelegate>

-(id) init{
self = [super init];
...
}

// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad {
[super viewDidLoad];
[[NSNotificationCenter defaultCenter] postNotificationName:@"ViewDidLoad" object:nil];
}

-(void) awakeFromNib{
[self loadData]; // loads some data
//calls addNode for a bunch of dynamic data
}
<小时/>

出现此错误:

2010-07-29 10:19:45.428 DataManager[2945:207] -[NSCFString buttonTouched:]: unrecognized selector sent to instance 0x593abb0  
2010-07-29 10:19:45.429 DataManager[2945:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSCFString buttonTouched:]: unrecognized selector sent to instance 0x593abb0'
*** Call stack at first throw:
(
0 CoreFoundation 0x02399919 __exceptionPreprocess + 185
1 libobjc.A.dylib 0x024e75de objc_exception_throw + 47
2 CoreFoundation 0x0239b42b -[NSObject(NSObject) doesNotRecognizeSelector:] + 187
3 CoreFoundation 0x0230b116 ___forwarding___ + 966
4 CoreFoundation 0x0230acd2 _CF_forwarding_prep_0 + 50
5 UIKit 0x002bde14 -[UIApplication sendAction:to:from:forEvent:] + 119
6 UIKit 0x003476c8 -[UIControl sendAction:to:forEvent:] + 67
7 UIKit 0x00349b4a -[UIControl(Internal) _sendActionsForEvents:withEvent:] + 527
8 UIKit 0x003486f7 -[UIControl touchesEnded:withEvent:] + 458
9 UIKit 0x00535070 _UIGestureRecognizerUpdateObserver + 3687
10 CoreFoundation 0x0237ad1b __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 27
11 CoreFoundation 0x0230f987 __CFRunLoopDoObservers + 295
12 CoreFoundation 0x022d8c17 __CFRunLoopRun + 1575
13 CoreFoundation 0x022d8280 CFRunLoopRunSpecific + 208
14 CoreFoundation 0x022d81a1 CFRunLoopRunInMode + 97
15 GraphicsServices 0x02bfe2c8 GSEventRunModal + 217
16 GraphicsServices 0x02bfe38d GSEventRun + 115
17 UIKit 0x002cbb58 UIApplicationMain + 1160
18 DataManager 0x00002940 main + 102
19 DataManager 0x000028d1 start + 53
)
terminate called after throwing an instance of 'NSException'
Program received signal: “SIGABRT”.
kill
kill

The Debugger has exited due to signal 15 (SIGTERM).The Debugger has exited due to signal 15 (SIGTERM).

最佳答案

在将操作添加到按钮之前,我确实添加了 [self keep];,现在它可以工作了!

-(void) addNode:(NSString *) atitle{  
UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[btn setTitle:atitle forState:UIControlStateNormal];
[self retain];
[btn addTarget:self action:@selector(buttonTouched:) forControlEvents:UIControlEventTouchUpInside]; // handle touch

有什么理由吗?
self 是处理一切的 UIViewController (至少我是这么认为的)

关于iphone - EXC_BAD_ACCESS 无法识别的选择器发送到实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3364254/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com