gpt4 book ai didi

ios - 在框架提供的 View Controller 上重写 didSelectRowAtIndexPath?

转载 作者:行者123 更新时间:2023-11-29 01:31:23 30 4
gpt4 key购买 nike

所以我正在使用 CoreAudioKit 的 CABTMIDICentralViewController显示 MIDI 蓝牙设备列表供用户选择。但是,我希望能够知道用户在完成后选择了哪个设备,但 Apple 似乎没有添加任何方法来做到这一点。

所以我试图通过检测用户何时选择表中的行来破解它:

DPBleMidiDeviceManager.h:

#import <CoreAudioKit/CoreAudioKit.h>

@interface DPBleMidiDeviceManager : CABTMIDICentralViewController

@end

DPBleMidiDeviceManager.m:

#import "DPBleMidiDeviceManager.h"

@implementation DPBleMidiDeviceManager

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSLog(@"midi device selected %@", indexPath);

//either of these next lines crash, it makes no difference:
//[[tableView delegate] tableView:tableView didDeselectRowAtIndexPath:indexPath];
[super tableView:tableView didDeselectRowAtIndexPath:indexPath];
}
@end

问题是,它在最后一行崩溃,说没有选择器。这很奇怪,因为如果我删除 super 调用,它不会崩溃,但它也不会正确连接到 BLE 设备,就像我没有覆盖该委托(delegate)调用时一样。

这只是 Apple 所做的让您无法访问他们的表格的事情吗?为什么他们会构建这样的 UI View 并让您调用它,但不向您提供有关结果的任何信息?我是否缺少执行此操作的一些标准方法?

编辑:这是 super 调用崩溃的详细信息:

2015-10-29 15:14:37.039 [626:338267] midi device selected <NSIndexPath: 0x1473ae20> {length = 2, path = 0 - 3}
2015-10-29 15:14:37.039 [626:338267] -[DPBleMidiDeviceManager tableView:didDeselectRowAtIndexPath:]: unrecognized selector sent to instance 0x147f34e0
2015-10-29 15:14:37.040 [626:338267] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[DPBleMidiDeviceManager tableView:didDeselectRowAtIndexPath:]: unrecognized selector sent to instance 0x147f34e0'
*** First throw call stack:
(0x2b3cdfef 0x3967dc8b 0x2b3d3409 0x2b3d11bf 0x2b300e78 0xaa165 0x2eb3956b 0x2ebe843b 0x2ea9da91 0x2ea1838f 0x2b393fed 0x2b3916ab 0x2b391ab3 0x2b2de201 0x2b2de013 0x32aab201 0x2ea82a59 0x88447 0x39c09aaf)
libc++abi.dylib: terminating with uncaught exception of type NSException

最佳答案

这不是你所说的 super 。应该是

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSLog(@"midi device selected %@", indexPath);

[super tableView:tableView didDeselectRowAtIndexPath:indexPath];
}

关于ios - 在框架提供的 View Controller 上重写 didSelectRowAtIndexPath?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33425402/

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