gpt4 book ai didi

iphone - 在此代码段中使用 NSThread

转载 作者:行者123 更新时间:2023-11-28 18:42:57 29 4
gpt4 key购买 nike

我正在处理其他人的代码。我遇到了一行代码

[NSThread detachNewThreadSelector:@selector(myMethod) toTarget:self withObject:nil];

我有 2 个问题要问。

  1. 它只是调用一个方法。这里为什么要用NSThread?
  2. 在运行代码时,在某些情况下,不会调用此方法。当我在方法中放置一个断点时,它总是会被调用。但是如果我删除断点,在某些情况下该方法不会被调用。这是NSThread的问题吗?

最佳答案

以这种方式使用 NSThread 意味着在后台线程上调用方法“myMethod”,与其余代码同时调用。相当于这个,你可能也见过:

[self performSelectorInBackground:@selector(myMethod) withObject:nil];

如果该方法未被调用(或似乎未被调用),则可能归结为并发问题,即该方法的执行顺序以及您在主线程中调用的方法的执行顺序无法保证, 所以你期望它比实际更早被调用。

如果你说:

[NSThread detachNewThreadSelector:@selector(methodA) toTarget:self withObject:nil];
[self methodB];

那么方法 A 和方法 B 将同时运行,并且无法保证方法 A 将在方法 B 之前完成。

关于iphone - 在此代码段中使用 NSThread,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9015581/

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