gpt4 book ai didi

ios - NSThread参数问题

转载 作者:行者123 更新时间:2023-11-29 04:58:34 24 4
gpt4 key购买 nike

[NSThread detachNewThreadSelector:@selector(addressLocation:) toTarget:self withObject:parameter];

[self addressLocation:parameter];

这两个语句应该做同样的事情吗?因为其中一个(第二个)给了我准确的结果,而另一个始终给我一个非洲海岸附近的随机位置。根据我的阅读,他们都应该做同样的事情;使用参数“parameter”执行addressLocation。唯一的区别是线程,但它正在访问全局 volatile 变量,所以这应该不重要,不是吗?

最佳答案

线程比这复杂得多。当您调用 detachNewThreadSelector 时,您正在创建一个新线程,但没有简单的方法可以让您知道该调用何时完成。它可以在调用线程中的下一行代码之前完成,也可以在几秒钟之后完成。

如果您先创建线程,则可以使用performSelector:onThread:withObject:waitUntilDone,并且您应该获得与使用[self addressLocation:parameter]相同的结果。但这不会给你带来太多好处,因为在你等待结果时,你的主线程将什么都不做。

有很多方法可以从线程取回数据——例如,我喜欢从辅助线程调用performSelectorOnMainThread 将数据发送回主线程。

我会阅读 Grand Central Dispatch看看它是否适合您的需求。

关于ios - NSThread参数问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7465336/

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