为什么成为第一响应者会导致iOS崩溃?

为什么成为第一响应者会导致iOS崩溃?,ios,Ios,我想将UIMenuController与我的UITableViewCell一起使用 因此,我在我的单元格中的自定义标签中添加了一个ui长按GestureRecognitor -(BOOL)canBecomeFirstResponder { return YES; } -(void)longPress:(UILongPressGestureRecognizer *)longRecognizer { if (longRecognizer.state!=UIGestureRecogni

我想将
UIMenuController
与我的
UITableViewCell
一起使用

因此,我在我的单元格中的自定义标签中添加了一个
ui长按GestureRecognitor

-(BOOL)canBecomeFirstResponder
{
    return YES;
}
-(void)longPress:(UILongPressGestureRecognizer *)longRecognizer
{
    if (longRecognizer.state!=UIGestureRecognizerStateBegan) {

        return;
    }

    [self becomeFirstResponder];
    UIMenuItem *copy = [[UIMenuItem alloc] initWithTitle:@"copy" action:@selector(copyText:)];
    UIMenuItem *report = [[UIMenuItem alloc] initWithTitle:@"report" action:@selector(reportText:)];

    UIMenuController *menu = [UIMenuController sharedMenuController];
    [menu setMenuItems:@[copy, report]];
    [menu setTargetRect:longRecognizer.view.bounds inView:longRecognizer.view];
    [menu setMenuVisible:YES animated:YES];

    NSLog(@"menu show");
}
但是我在
[self becomeFirstResponder]

和控制台日志显示

\u BSMachError:(操作系统/内核)无效功能(20)

\u bsmachinerror:(os/kern)无效名称(15)


发生了什么事?

您正在becomeFirstResponder中分配Deallocate对象。@CodeHunter您的意思是自定义标签已解除分配吗?但调试代码时标签未解除分配只需添加[yourlable/textfield becomeFirstResponder]。@CodeHunter
self
是我的标签