【问题标题】:iOS---Button causing unrecognized selector sent to instance 0x7f803a59cc50iOS---导致无法识别的选择器发送到实例 0x7f803a59cc50 的按钮
【发布时间】:2015-01-21 10:07:34
【问题描述】:

我的视图中有 3 个按钮,一个按钮可以更改文本视图中单词的背景颜色,一个可以正常工作。一个按钮可以更改文本视图中的单词轮廓。每次单击时都会出现这个错误。

这是我的错误:

libc++abi.dylib: terminating with uncaught exception of type NSException 
and Thread 1 : signal SIGABRT

而且系统不知道究竟是哪个部分崩溃,所以我查看了日志导航器。这是我的日志导航器日志:

2015-01-21 17:42:04.482   Attributer[2592:79541] -[ViewController outlineBodySelection]: unrecognized selector sent to instance 0x7f803a59cc50
2015-01-21 17:42:04.485 Attributer[2592:79541] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[ViewController outlineBodySelection]: unrecognized selector sent to instance 0x7f803a59cc50'

这是我的代码:

#import "ViewController.h"

@interface ViewController ()
@property (weak, nonatomic) IBOutlet UILabel *headline;
@property (weak, nonatomic) IBOutlet UITextView *body;

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
}

- (IBAction)changeBodySelectionColourToMatchBackgroundOfButton:(UIButton *)sender {
    [self.body.textStorage addAttribute:NSForegroundColorAttributeName
                                  value:sender.backgroundColor
                                  range:self.body.selectedRange];
}


- (IBAction)outlineBodySelection
{
    [self.body.textStorage addAttributes:@{ NSStrokeWidthAttributeName : @-3,
                                            NSStrokeColorAttributeName : [UIColor blackColor] }range:self.body.selectedRange];
}

- (IBAction)unoutlineBodySelection
{
    [self.body.textStorage removeAttribute:NSStrokeWidthAttributeName range:self.body.selectedRange];
}
@end

我想最后两个类出现错误,但是哪里出错了,我该如何解决? 请有人帮助我。

【问题讨论】:

  • 能否显示一键换字的代码
  • 连接到ibaction的outlineBodySelection检查
  • 启用exception brakepoint 并尝试让您的应用崩溃。

标签: ios objective-c iphone ios7 ios8


【解决方案1】:

尝试为您的按钮制作一个插座,并将此代码添加到您的按钮viewDidLoad

[mybutton addTarget:self action:@selector(outlineBodySelection) forControlEvents:UIControlEventTouchUpInside];

【讨论】:

    【解决方案2】:

    我猜你这边一切正常,但让我们检查一下从插座连接是否来自故事板或 XIB。

    可能是一些连接丢失或错误连接,其中提到了!标记

    你身边的其他完美者

    ​​>

    【讨论】:

    • 我检查了我的连接检查器。我的 outlineBodySelection 与 Outline Touch Up Inside 断开连接。我是 x-code 的新手。非常感谢您的宝贵时间,这真的很有帮助。
    【解决方案3】:

    如果您将按钮连接到不再存在(或已重命名)的 IBAction,也会发生这种情况。检查一次您的连接。

    【讨论】:

      【解决方案4】:

      IBAction 方法具有以下格式

      -(IBAction)name:(id)sender
      

      【讨论】:

      • 嗯,我明白,但我正在学习斯坦福 iOS7 CS193P 课程,它没有添加发件人,我不寻找按钮来确定如何做。
      • 您暗示这是强制性的,您应该详细说明一个更好的答案,特别是因为 OP 刚刚说他们正在学习。知识是免费的,可以免费给予,也可以免费获得。解释发件人实际上做了什么
      猜你喜欢
      • 2017-01-26
      • 1970-01-01
      • 2014-02-18
      • 1970-01-01
      • 1970-01-01
      • 2021-01-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多