草庐IT

Closures

全部标签

swift - 将可选 block 或闭包传递给 Swift 中的函数

在Swift中将可选block传递给函数的正确语法是什么? 最佳答案 虽然不像Objective-Cblock语法那样难记,但它远非显而易见。notConnected参数在此示例中是可选的:funcwhenConnected(block:Void->Void,notConnected:((Void)->Void)?,showErrorMessage:Bool)->Void{letconnected=Reachability.isConnectedToNetwork()ifconnected{block()}else{notConne

swift - 将可选 block 或闭包传递给 Swift 中的函数

在Swift中将可选block传递给函数的正确语法是什么? 最佳答案 虽然不像Objective-Cblock语法那样难记,但它远非显而易见。notConnected参数在此示例中是可选的:funcwhenConnected(block:Void->Void,notConnected:((Void)->Void)?,showErrorMessage:Bool)->Void{letconnected=Reachability.isConnectedToNetwork()ifconnected{block()}else{notConne

iOS Swift 传递关闭作为属性?

假设我有一个自定义UIView,我们称它为MyCustomView。在这个View中有一个UITextField属性。假设我的目标是能够创建MyCustomView的实例并将其添加到某处的某个ViewController,并且我希望该ViewController能够处理对该文本字段采取的操作。例如,如果我在文本字段中的键盘上点击“返回”,我可能想要执行一些操作-让我举一个例子,说明我用一些objective-c伪代码设想的内容:MyCustomView*myView=[[MyCustomViewalloc]initWithFrame:CGRectMake(10,10,100,100)]

iOS Swift 传递关闭作为属性?

假设我有一个自定义UIView,我们称它为MyCustomView。在这个View中有一个UITextField属性。假设我的目标是能够创建MyCustomView的实例并将其添加到某处的某个ViewController,并且我希望该ViewController能够处理对该文本字段采取的操作。例如,如果我在文本字段中的键盘上点击“返回”,我可能想要执行一些操作-让我举一个例子,说明我用一些objective-c伪代码设想的内容:MyCustomView*myView=[[MyCustomViewalloc]initWithFrame:CGRectMake(10,10,100,100)]

swift - 为什么闭包在 Swift 3 中默认都是非转义的而需要显式的 `self`?

我注意到在Swift2.2中,使用@noescape标记为非转义的闭包不需要显式的self。在Swift3中,默认情况下所有闭包都是非转义的,现在如果您希望它们能够转义,则需要使用@escaping标记它们。鉴于默认情况下Swift3中的所有闭包都是非转义的,为什么它们需要显式的self?finalclassSomeViewController:NSViewController{varsomeClosure:()->()={_in}overridefuncviewDidLoad(){super.viewDidLoad()someClosure={view.layer=CALayer()

swift - 为什么闭包在 Swift 3 中默认都是非转义的而需要显式的 `self`?

我注意到在Swift2.2中,使用@noescape标记为非转义的闭包不需要显式的self。在Swift3中,默认情况下所有闭包都是非转义的,现在如果您希望它们能够转义,则需要使用@escaping标记它们。鉴于默认情况下Swift3中的所有闭包都是非转义的,为什么它们需要显式的self?finalclassSomeViewController:NSViewController{varsomeClosure:()->()={_in}overridefuncviewDidLoad(){super.viewDidLoad()someClosure={view.layer=CALayer()

swift - 如何在 block 外快速创建一个指向自身的弱指针

我想在swift中创建一个指向自身的弱指针,就像我们过去在objective-c中那样__weakSomething*weakself=self;我发现有人在解释如何在block中使用“弱self”,{in[unownedself]...}但我不想在我的block内定义“weakself”,我想在block外定义weakself 最佳答案 只需使用weak关键字定义一个弱引用:weakvarweakSelf=self来自documentation:Youindicateaweakreferencebyplacingtheweakke

swift - 如何在 block 外快速创建一个指向自身的弱指针

我想在swift中创建一个指向自身的弱指针,就像我们过去在objective-c中那样__weakSomething*weakself=self;我发现有人在解释如何在block中使用“弱self”,{in[unownedself]...}但我不想在我的block内定义“weakself”,我想在block外定义weakself 最佳答案 只需使用weak关键字定义一个弱引用:weakvarweakSelf=self来自documentation:Youindicateaweakreferencebyplacingtheweakke

swift - 我可以让#selector 引用 Swift 中的闭包吗?

我想让我的方法的一个selector参数引用一个闭包属性,它们都存在于同一个范围内。例如,funcbackgroundChange(){self.view.backgroundColor=UIColor.blackColor()self.view.alpha=0.55letbackToOriginalBackground={self.view.backgroundColor=UIColor.whiteColor()self.view.alpha=1.0}NSTimer.scheduledTimerWithTimeInterval(0.5,target:self,selector:#se

swift - 我可以让#selector 引用 Swift 中的闭包吗?

我想让我的方法的一个selector参数引用一个闭包属性,它们都存在于同一个范围内。例如,funcbackgroundChange(){self.view.backgroundColor=UIColor.blackColor()self.view.alpha=0.55letbackToOriginalBackground={self.view.backgroundColor=UIColor.whiteColor()self.view.alpha=1.0}NSTimer.scheduledTimerWithTimeInterval(0.5,target:self,selector:#se