NSThread:未找到选择器

时间:2014-08-11 13:31:22

标签: cocoa swift

我有点困惑,为什么我的NSThread由于运行时错误而无法使用选择器进行实例化

target does not implement selector (*** -[FileSearcher processFilesAsync:])

该功能定义如下

func processFilesAsync(#data: [String])

将以这种方式创建NSThread:

NSThread(target: self, selector: "processFilesAsync:", object: itemsPerThread[i])

" itemsPerThread"只是一个字符串,其中包含String-Array作为值。

据我所知,这应该工作,因为我想要调用的方法定义了一个参数,而我传递给NSThread的init()方法的选择器表明目标方法只需要一个参数。

我已经尝试过使用Swift" Selector"键入而不是只有一个字符串,但这也不起作用。我还尝试从" [String]"更改方法的类型。 to" AnyObject"这也没有用。

有人知道可能出错的地方吗?

上面的所有代码都在同一个类中。

我正在使用Xcode 6 Beta 5.

修改 我发现必须对参数做一些事情。我实现了一个没有参数的虚方法,并尝试将其设置为目标并且它有效。一旦我修改它以使用参数 - >与上述相同。

1 个答案:

答案 0 :(得分:0)

找到它。我所要做的就是将参数的类型从AnyObject更改为AnyObject?。它甚至适用于专用类型(在我的情况下为[String]?而不是[String])。

当然,因为您可以将其称为nil作为参数...