gpt4 book ai didi

ios - 使用 NSThread 生成线程时如何解决 "target does not implement selector"这个异常?

转载 作者:行者123 更新时间:2023-11-28 06:54:14 26 4
gpt4 key购买 nike

我是使用 NSThread 生成线程的新手。在我的实践中,我想生成一个线程来执行一个在 CreateThread 类中打印 String 的方法。但是当我运行我的程序时,“目标不实现选择器”异常显示在控制台中。我应该怎么做才能解决这个问题?谢谢回答。

代码如下:

import Foundation

class CreateThread {

func HelloWorld() {

print("Hello World!")

NSThread.detachNewThreadSelector("secondaryThreadMethod", toTarget: self, withObject: nil)

print("Test")

}

func secondaryThreadMethod() {

print("Hello World in Secondary Thread!")

}

}

let createThread = CreateThread()
createThread.HelloWorld()

最佳答案

问题是 NSThread api 在 objective-c 运行时中运行,而您的 CreateThread 类是纯粹的 swift - 默认情况下,它的方法在 objective-c 世界中是不可见的。要解决这个问题,您可以让您的类继承自 NSObject 或将您的 secondaryThreadMethod 方法标记为 @objc:

// Either of following lines will fix the crash
class CreateThread : NSObject {
...
@objc func secondaryThreadMethod() {

您可以在 documentation 中阅读有关 swift 和 objective-c 互操作性的更多信息

关于ios - 使用 NSThread 生成线程时如何解决 "target does not implement selector"这个异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34147572/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com