Xcode - 无法识别的选择器发送到实例XXXXXXX

时间:2015-08-02 21:07:07

标签: ios xcode swift

感谢您回答我的问题。

我正在Swift中编写我的第一个应用程序。它运行正常,直到我添加了一个UISwitch并对其进行了编程。当我尝试切换开关时,它给我这个输出:

2015-08-02 14:02:36.091 Hello World[1885:633995] HangTracer interval is 0, forcing to 1s
2015-08-02 14:02:38.890 Hello World[1885:633995] -[Hello_World.ViewController myButton:]: unrecognized selector sent to instance 0x144e3a880
2015-08-02 14:02:38.891 Hello World[1885:633995] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[Hello_World.ViewController myButton:]: unrecognized selector sent to instance 0x144e3a880'
*** First throw call stack:
(0x185ccc4d0 0x19a0aff9c 0x185cd31ec 0x185cd0188 0x185bd520c 0x18b36de08 0x18b36dd84 0x18b356934 0x18b5bef6c 0x18b7bd724 0x18b87858c 0x18b4d5b50 0x18b369104 0x18b877c30 0x18b32928c 0x18b3273ac 0x18b367088 0x18b3665ec 0x18b337908 0x18b335fac 0x185c83d6c 0x185c83800 0x185c81500 0x185bb1280 0x190b600cc 0x18b39edf8 0x10008614c 0x19a8f28b8)
libc++abi.dylib: terminating with uncaught exception of type NSException

我不知道出了什么问题。为什么myButton会影响一个不同的,无关的变量? (是myswitch)。如果需要,我也可以上传代码。

2 个答案:

答案 0 :(得分:1)

您必须更改此行:

SELECT documents.id
FROM documents
  JOIN document_tags ON documents.id = document_tags.document_id
  JOIN tag_groups ON document_tags.tag_id = tag_groups.tag_id
WHERE
  NOT EXISTS (
    SELECT 1 FROM user_groups 
    WHERE user_groups.group_id = tag_groups.group_id 
  )

对此:

mySwitch.addTarget(self, action: Selector("switchIsChanged"), forControlEvents: UIControlEvents.ValueChanged)

您可以跳过":"如果选择器不带参数,但如果选择器接受参数,则必须添加":"。

答案 1 :(得分:0)

我解决这个问题的方法是将ViewController.swift复制并粘贴到一个新项目中并重新创建Main.storyboard。不知道它是如何工作的但是@Darko做对了。谢谢Darko!