两个addTarget的不同结果:action:forControlEvent:calls

时间:2012-04-11 13:42:10

标签: ios button target-action

代码只不过是按钮的 target-action

[subButton addTarget:self
              action:@selector(pickerviewSubButtonClicked:) 
    forControlEvents:UIControlEventTouchUpInside];

//[subButton addTarget:self action:@selector(pickerViewSubButtonClicked:) forControlEvents:UIControlEventTouchUpInside];

我有第一个失败错误“ ...无法识别的选择器发送到实例... ”,而使用标记的成功即可。我怀疑它是由什么引起的 通过排版,但不知道究竟为什么。这是他们的十六进制转储

00000000: 5b73 7562 4275 7474 6f6e 2061 6464 5461  [subButton addTa
00000010: 7267 6574 3a73 656c 660a 0920 2020 6163  rget:self..   ac
00000020: 7469 6f6e 3a40 7365 6c65 6374 6f72 2870  tion:@selector(p
00000030: 6963 6b65 7276 6965 7753 7562 4275 7474  ickerviewSubButt
00000040: 6f6e 436c 6963 6b65 643a 2920 0a09 2020  onClicked:) ..  
00000050: 2066 6f72 436f 6e74 726f 6c45 7665 6e74   forControlEvent
00000060: 733a 5549 436f 6e74 726f 6c45 7665 6e74  s:UIControlEvent
00000070: 546f 7563 6855 7049 6e73 6964 655d 3b0a  TouchUpInside];.
00000080: 2f2f 5b73 7562 4275 7474 6f6e 2061 6464  //[subButton add
00000090: 5461 7267 6574 3a73 656c 6620 6163 7469  Target:self acti
000000a0: 6f6e 3a40 7365 6c65 6374 6f72 2870 6963  on:@selector(pic
000000b0: 6b65 7256 6965 7753 7562 4275 7474 6f6e  kerViewSubButton
000000c0: 436c 6963 6b65 643a 2920 666f 7243 6f6e  Clicked:) forCon
000000d0: 7472 6f6c 4576 656e 7473 3a55 4943 6f6e  trolEvents:UICon
000000e0: 7472 6f6c 4576 656e 7454 6f75 6368 5570  trolEventTouchUp
000000f0: 496e 7369 6465 5d3b 0a                   Inside];.

任何想法?

3 个答案:

答案 0 :(得分:2)

您输错了 v V

选择器 v iewSubButtonClicked

Objective-C是区分大小写的语言

答案 1 :(得分:0)

[subButton addTarget:self
              action:@selector(pickerviewSubButtonClicked:) 
    forControlEvents:UIControlEventTouchUpInside];

pickerviewSubButtonClicked <-- Error
pickerViewSubButtonClicked <-- Work

答案 2 :(得分:0)

您的操作按钮是否发送了一个事件? 选择器名称后面包含':'也需要发送一个对象。