gpt4 book ai didi

ios - 无法使用 @selector 找到方法 - NSInvalidArgumentException 自 iOS 8

转载 作者:行者123 更新时间:2023-11-29 12:37:05 25 4
gpt4 key购买 nike

更新到 iOS8 并使用 XCode6 编译我的应用程序后,单击按钮时出现非常奇怪的异常。

我的按钮是这样定义的:

UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];

[button addTarget:self
action:@selector(cellButtonPressed:)
forControlEvents:UIControlEventTouchDown];

在“@selector”中我定义了按下按钮时调用的方法:

-(void) cellButtonPressed:(id)sender {    
NSLog(@"Hello again");
}

我也在我的头文件.h中添加了这个方法

此按钮作为 subview 放置在 UITableViewCell 中:

button.frame = CGRectMake(cell.frame.size.width - 54, cell.frame.origin.y+20, 36, 36);

[cell addSubview:button];

这在 iOS7 上运行良好。但是现在,在 iOS8 上,单击按钮后出现异常:

2014-09-25 08:33:47.461 ****[12442:1669165] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UITableViewWrapperView type]: unrecognized selector sent to instance 0x12ce35560'
*** First throw call stack:
(0x185dae084 0x1963940e4 0x185db5094 0x185db1e48 0x185cb708c 0x10005a928 0x18a5652f4 0x18a54e44c 0x18a56dff8 0x18a524724 0x18a55e7b8 0x18a55de58 0x18a531660 0x18a7cfd6c 0x18a52fbc8 0x185d66324 0x185d655c8 0x185d63678 0x185c91664 0x18edd35a4 0x18a596984 0x10004b324 0x196a02a08)
libc++abi.dylib: terminating with uncaught exception of type NSException

有人知道为什么吗?

谢谢你的帮助!

最佳答案

好的,由于评论中的建议,我找到了答案:

正确调用了选择器中的方法。从 super View 获取单元格时存在问题。

在 iOS7 上,我使用以下代码在单元格中点击了按钮:

UserTableViewCell *cell = (UserTableViewCell *)[[sender superview] superview];

现在,在 iOS8 上,我必须通过此调用获取单元格:

UserTableViewCell *cell = (UserTableViewCell *)[sender superview];

所以,这对我来说是一个解决方案:

-(void)cellButtonPressed:(id)sender {
NSArray *vComp = [[UIDevice currentDevice].systemVersion componentsSeparatedByString:@"."];
UserTableViewCell *cell = nil;

if ([[vComp objectAtIndex:0] intValue] >= 8) {
cell = (UserTableViewCell *)[sender superview];
} else {
cell = (UserTableViewCell *)[[sender superview] superview];
}

// do your stuff
}

因此,TableViewCell 的 View 堆栈似乎是另一个。很高兴知道:)

谢谢大家!

关于ios - 无法使用 @selector 找到方法 - NSInvalidArgumentException 自 iOS 8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26032264/

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