【发布时间】:2016-03-30 20:48:28
【问题描述】:
嗨,我是 swift 新手,我想在后台运行一个函数,我的问题是,一旦函数运行,hole 应用程序就会冻结,直到函数结束,我才能使用界面。
StartStream 是一个按钮,它将调用函数self.StreamCam 用于流式传输相机,然后它将当前视图移动到CAMView 以查看相机界面。
这是我以前调用该函数的内容:
@IBAction func StartStream(sender: UIButton) {
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), {
let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil)
let nextViewController = storyBoard.instantiateViewControllerWithIdentifier("CAMView") as! CAM
let seconds = 2.0
let delay = seconds * Double(NSEC_PER_SEC)
let dispatchTime = dispatch_time(DISPATCH_TIME_NOW, Int64(delay))
dispatch_after(dispatchTime, dispatch_get_main_queue(), {
self.StreamCam(self.session)
})
dispatch_async(dispatch_get_main_queue(), {
self.presentViewController(nextViewController, animated:true, completion:nil)});
});
}
有什么建议吗?
【问题讨论】:
-
通过此链接可能会有所帮助stackoverflow.com/questions/24056205/…
-
您的解决方案有效,但仅在模拟器上有效,当我在 iPhone 上使用应用程序时,如果我使用 iPhone 的 safari,流媒体视频会冻结,流工作正常,为什么它只在我的 iPhone 应用程序上冻结?
标签: ios multithreading swift ssh raspberry-pi2