我有点困惑,为什么我的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.
修改 我发现必须对参数做一些事情。我实现了一个没有参数的虚方法,并尝试将其设置为目标并且它有效。一旦我修改它以使用参数 - >与上述相同。
答案 0 :(得分:0)
找到它。我所要做的就是将参数的类型从AnyObject
更改为AnyObject?
。它甚至适用于专用类型(在我的情况下为[String]?
而不是[String]
)。
当然,因为您可以将其称为nil
作为参数...