grand-central-dispatch

    0热度

    1回答

    我打电话Facebook的图形API来获取登录到通过Facebook我的应用程序的用户的电子邮件,Facebook的ID和名称。 我成功获取信息;我现在试图使用调度组,以便调用图的函数在返回之前等待图API调用完成。图形请求是异步的。 我想不通为什么这个代码是锁定的。 1)创建一个调度组 2)输入所述显示组 3)离开基团一旦信息被检索或错误被发现 4)等待之前的组离开返回 好像我的调度组输入不正确

    2热度

    1回答

    我对其他编程语言有很多经验,但在swift中没有那么多3.我想做轮询循环。这就是我写: DispatchQueue.global(qos: .userInitiated).async { [unowned self] in while self.isRunning { WebService.getPeople(completion: nil)

    0热度

    1回答

    我有一个算法来识别照片中的对象。主要的问题是它不是线程安全的,所以e.x.当你设置一个新的配置文件或者当你开始处理一个新的图像,但仍然存在处理差异时,算法的行为是不确定的,并且可能会崩溃。下面我把我的代码和我的实现不好。 // config struct public struct Config {} // reslut of the algorithm public struct Pro

    0热度

    1回答

    我正在使用从外接设备接收数据。我想在一个线程中异步处理它的数据读/写队列。 我主要工作:有一个类简单地管理两个流,使用NSStreamDelegate来响应传入数据,以及响应NSStreamEventHasSpaceAvailable发送失败后在缓冲区中等待的数据先发送。 这个班,我们称之为SerialIOStream,不知道线程或GCD队列。相反,它的用户,我们称之为DeviceCommunic

    1热度

    1回答

    有人可以用简单的例子回答: 如何正确锁码部分与条件:如果这部分是由一些线程不持有其他线程锁定只是通过其他跳过这部分线程并继续前进。

    1热度

    1回答

    我有一个异步任务,我想执行任务,并且每当请求任务时,它应该使所有以前的任务过时。这意味着我只想一次只运行一个这样的任务,并在新的启动时取消前一个任务。 实施例: 用户按下按钮以某种计算。控制器在用户更改输入数据并再次按下按钮时计算。第一次计算应该取消,新的计算应该从新的输入开始。 此模式是否合理?实现这一点的常见模式是什么?有没有一个简单的映射到DispatchQueue/OperationQue

    -1热度

    2回答

    我创建了一个类,如下面的代码所示,并且您可以看到我正在解析viewController之外的类中的JSON文件。 当我在视图控制器中创建AllCards对象时,显然会在开始时返回0,但过了一段时间后它会返回正确数量的卡片。 在这里我的问题: 1)如何可以等待的对象创建的viewDidLoad中之前,所以在视图并加载AllCard对象将返回的卡是否正确? 2)如果我在viewController中添

    1热度

    2回答

    你好,并提前感谢您的时间。 在我的代码中,我正在向AWSSQS发出各种请求,这些请求都返回AWSTask。我发现使用这些AWSTask对象非常困难,同时也试图将所有特定于AWS的逻辑保存在一个类中,以便在需要时可以轻松切换到不同的云服务。 理想情况下,我想要做的是以串行方式异步执行一系列AWS任务。通常我只是将任务添加到自定义的串行调度队列中,但由于AWSTask对象本身就是异步任务,所以我不能这

    0热度

    3回答

    假设我有以下DispatchQueue: let myqueue = DispatchQueue(label: "myqueue") 是什么async块和sync块之间的区别?有人可以解释它的意思吗? 例如在主线程中,在主线程的中间执行。它会发生什么,如果我叫myqueue.async{...}或myqueue.sync{...} e.g override func viewDidLoad()

    1热度

    2回答

    我在表格视图中介绍和修复了x等于1时的数据会被引入到数据中,等于2会被转移到修复数据中,但是当我在执行后是空白的表视图,以及我的委托和数据源是有一个环节 这里是我的下载数据功能: func laodingTableviewData() { self.suggestionTableView.isHidden = true let frame = CGRect(x: 150, y: