草庐IT

dispatch_release

全部标签

swift - 在 Swift 中的 Dispatch 闭包中修改结构实例变量

我使用的是DEVELOPMENT-SNAPSHOT-2016-06-06-a版本的Swift。我似乎无法解决这个问题,我尝试在不同的地方使用@noescape,但我仍然有以下错误:Closurecannotimplicitlycaptureamutatingselfparameter为了更好地解释,这里有一个简单的例子:publicstructExampleStruct{letconnectQueue=dispatch_queue_create("connectQueue",nil)vartest=10mutatingfuncexample(){ifletconnectQueue=se

ios - Swift/如何将 dispatch_group 与多个调用的 web 服务一起使用?

我正在使用dispatch_group调用Firebase请求函数,并在请求完成后收到通知,以便能够处理结果。在这种情况下,我只是放了一条打印语句。funcloadStuff(){dispatch_group_enter(group)myFirebaseFunction(){dispatch_group_leave(group)}dispatch_group_notify(group,dispatch_get_main_queue()){print("done")}}funcmyFirebaseFunction(completionHandler:()->()){letusersRef

ios - Xcode 7 : show same console log for release build as development build?

Thisanswer解决了如何在Xcode中显示控制台日志,但出现在应用开发版本中的Swift中使用print函数打印的输出不会出现在发布版本中。需要说明的是,该应用程序是从AppStore下载的,然后打开了Xcode,控制台日志显示如SO答案所述。Thisanswer建议print函数继续将输出发送到控制台,即使对于发布版本也是如此。但是,为开发版本打印到控制台的行不再出现在AppStore版本中。您如何查看与开发版本相同的控制台输出? 最佳答案 即使是发布版本,打印功能也会继续发送输出,但它不会出现在控制台上。要查看输出,请转至

swift - Swift 中 dispatch_once 的例子

有没有在Swift中应该如何使用dispatch_once的例子?(最好是Apple的。)注意:在本例中,我是notusingitforasingleton;我想只运行一次任意代码。更新:我主要对在实例方法中使用this时推荐的约定感兴趣,但是为了完整性起见,在类方法、函数和全局上下文中的使用会很有用。 最佳答案 dispatch_once_t是类型别名(Int)。header文档:/*!*@typedefdispatch_once_t**@abstract*Apredicateforusewithdispatch_once().I

ios - 什么时候使用 Semaphore 而不是 Dispatch Group?

我假设我知道如何使用DispatchGroup,为了理解这个问题,我试过:classViewController:UIViewController{overridefuncviewDidLoad(){super.viewDidLoad()performUsingGroup()}funcperformUsingGroup(){letdq1=DispatchQueue.global(qos:.userInitiated)letdq2=DispatchQueue.global(qos:.userInitiated)letgroup=DispatchGroup()group.enter()dq

objective-c - dispatch_time 和 dispatch_walltime 之间有什么区别,在什么情况下使用其中一种更好?

我知道dispatch_time是根据设备时钟确定的时间,如果设备进入休眠状态,时钟也会休眠。另一方面,dipatch_walltime是根据挂钟计算的时间,它永远不会休眠。我的问题是,在不同情况下使用一种或另一种,在性能方面或其他方面有什么区别吗?有人可以给我更多详细信息吗,因为Apple文档并不详尽。例如,我正在编写一个按特定时间间隔运行的Timer类。余地也可以是10到30秒。在性能方面,我应该使用dispatch_time还是dispatch_walltime哪一个。 最佳答案 dispatch_time在您的计算机进入休眠

swift - 'dispatch_once_t' 在 Swift : Use lazily initialized globals instead 中不可用

这个问题在这里已经有了答案:Whitherdispatch_onceinSwift3?(7个答案)Usingadispatch_oncesingletonmodelinSwift(30个答案)关闭6年前。我在迁移到Swift3时遇到dispatch_once_t问题。根据Apple'smigrationguide:Thefreefunctiondispatch_onceisnolongeravailableinSwift.InSwift,youcanuselazilyinitializedglobalsorstaticpropertiesandgetthesamethread-safe

xcode - MyClass 不可用 : cannot find Swift declaration for this class - Release Build Only

我收到以下错误:MyClass不可用:找不到此类的Swift声明但我只有在Xcode中进行发布构建时才能得到它...调试工作正常。有人知道怎么回事吗?我正在运行6.3 最佳答案 如果MyClass在动态框架(CocoaTouchFramework)中,很可能您正在使用错误架构的构建。要检查,请在finder中浏览您的MyClass.framework,然后检查Modules/AirServiceKit.swiftmodule。应该有类似x86_64.swiftmodule或arm64.swiftmodule的东西,如果您使用的是模拟

grand-central-dispatch - 对自己使用 dispatch_async

我在将Objective-C代码移植到Swift时遇到过几次这个问题。假设我有以下代码:dispatch_async(dispatch_get_main_queue()){self.hostViewController?.view.addSubview(self.commandField)}这将导致错误,强调整个dispatch_async调用,提供:Couldnotfindmember'addSubview'我认为这是一个尚未正确实现的错误,因为如果我将addSubview调用放在dispatch_asyncblock之外,项目构建良好。最初我认为它可能与在block中捕获self有

c# - Debug.Assert 出现在 Release模式

我们都知道Debug.Assert在release模式下编译时不会被编译成dll。但出于某种原因,Debug.Assertdid出现在我编写的组件的发布版本中。我怀疑我可能弄乱了我的csproject设置。知道为什么Debug.Assert出现在Release模式中吗?P/S:在问这个问题之前,我已经仔细检查以确保我确实是在Release模式下编译的。注意2:我仔细检查了我的csproject,发现在Release配置中,DefineDEBUGconstant没有被勾选,这表明对于这部分我的设置是正确的。 最佳答案 检查Define