问题标签 [ios-multithreading]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
434 浏览

ios - 在代码中设置 SQLITE_THREADSAFE/使 Sqlite 线程安全

听起来很愚蠢,但我应该SQLITE_THREADSAFE在我的代码中设置哪里。Sqlite我的应用程序中的数据库用于我异步访问的多个实例。因此,我想让数据库线程安全。其中一项声明如下:

0 投票
1 回答
627 浏览

instance - Run two instance of the same app - split view

Didn’t have my hand on the iPad air or the iPad Pro. Would it be possible to run two instance of the same app in the two split views?

0 投票
1 回答
114 浏览

objective-c - 具有多个线程的 NSCondtion

方法1:

方法2:

如果线程 1在方法 1 中,通过执行[_condition waitUtilDate ...];它来解锁它的锁。 线程 2 进入该区域,也通过执行等待条件[_condition waitUtilDate ...]

线程 1线程 2都将一个块(请求 1 请求 2)排入队列以从远程获取相同的数据。当请求 1完成时,它调用方法 2 来发出 _condition 信号:

我的问题是:

  • 哪个会发出信号,线程 1线程 2
  • 因为请求 1请求 2做同样的事情,我可以在请求 1完成时向两个线程(broadcast)发出信号并取消请求 2 。但是,更好的方法是在请求 1发出后,拒绝线程 2进入临界区 。但是在进入关键区域之前我无法锁定两次。那么我能做什么呢?

谢谢。

0 投票
0 回答
397 浏览

ios - 使用 CFHostCreateWithName 时崩溃:“尝试再次启动线程”

帮助!当我尝试获取给定主机名的地址时遇到了崩溃;崩溃日志显示如下:

1 libobjc.A.dylib 0x0000000197d180e4 objc_exception_throw + 56

2 核心基础 0x0000000186044218-[NSException initWithCoder:]

3 基础 0x0000000186e9528c -[NSThread 开始] + 136

4 ZFirewall7.dylib 0x0000000105e4d768 -[FiPSettingsManager doHostStuff:] + 1124

5 ZFirewall7.dylib 0x0000000105e48424 _ZL23my_CFHostCreateWithNamePPK13__CFAllocatorPPK10__CFString + 164

6 上传 0x000000010220d1c0 +[UploadUtil 地址ForHostname:] (UploadUtil.m:277)

7 上传 0x000000010220d120 +[UploadUtil addressForHostname:] (UploadUtil.m:267)

……

*** -[NSThread start]:尝试再次启动线程

我的代码是:

这个函数确实由多个线程调用,CFHostCreateWithName 的文档说它是线程安全的,现在我不知道如何解决这个问题。

帮助!

0 投票
1 回答
676 浏览

swift - 如何在自定义类中使用 presentViewController?

我只是更新我的代码,但 alertWindow 不会出现。我在 Xcode 中添加断点,它表明它viewDelegate是 nil。所有代表都是零。这是我的代码:

0 投票
1 回答
96 浏览

ios - 错误 - 线程 1:信号 SIGABRT SpinCity

我正在为一个显示歌曲标题表并允许您单击它们以查看有关它的更多详细信息的项目制作应用程序。该项目的名称是 SpinCity。

下面是线程异常错误:

控制台输出为:

关于如何解决这个问题的任何想法?

谢谢你。

0 投票
2 回答
242 浏览

swift - 查看依赖网络请求

为了从我的视图控制器完全呈现我的视图,我需要从网络请求中获得响应。

我一直在尝试以多种不同的方式做到这一点,但每次都没有成功。

最初,我通过在调用任何方法来呈现视图之前发出“同步”网络请求来使其工作。但是,编译器警告我,从 ios 8 开始不推荐使用同步网络请求。

以最高效的方式完成此任务的最佳方法是什么?

我努力了:

但这只会使我的应用程序呈现为空白屏幕。

基本上我需要完成的是:在任何视图渲染发生之前发出网络请求并接收响应。

提前致谢!

0 投票
1 回答
606 浏览

ios - GCD设置线程之间的调度/优先级

我正在开发一个应用程序,该应用程序从相机捕获帧并混合由另一个线程更新的图像。我的问题是每 500 毫秒调用一次的图像创建线程消耗了影响其他线程的峰值计算能力。

这里有一些日志以供澄清:

如您所见,captureOutput 的帧速率超过 30 fps。一旦motionCallback 创建图像,帧速率就会下降然后再次上升。请注意,motionCallback() 仅在每 15 个捕获帧调用一次,因此平均计算能力应该很容易就足够了。

captureOutput() 在这样创建的队列上运行:

后来我像这样设置 AVCapture:

motionCallback() 设置如下:

然后:

和 generateImage() 像这样:

这个想法是每次 CoreMotion 系统让我更新时,我都会生成一个新图像。

我的问题是如何平均计算 motionCallback() 的计算时间,这样它就不会消耗导致帧速率下降的峰值 CPU 功率?所以我会接受它运行 10 倍的时间,但在此期间只消耗 1/10 的 cpu。

有什么想法可以控制吗?

谢谢克里斯

0 投票
2 回答
692 浏览

ios - dispatch_barrier_async 似乎对全局队列没有影响?

当我尝试 GCD 函数时dispatch_barrier_async,它在创建的队列上按预期工作dispatch_queue_create,而当我将它放在创建的全局队列上时dispatch_get_global_queue,屏障似乎不再起作用 = =,有人可以解释一下吗?谢谢~ 演示图片

0 投票
1 回答
2104 浏览

swift - 如何阻止线程在 Swift 中无限期运行?

我从一个我看不到实现的库中运行一个函数。

这个库类调用我的类的委托函数。

delegateCall is called!然后在日志窗口中每隔 1 秒定期打印一次该单词,因为我将self.someClass.beginService();.

问题是,我怎样才能终止这个线程?我不想诉诸于:

因为这意味着后台程序仍在工作。