swift中属性的完成处理程序

Posted

技术标签:

【中文标题】swift中属性的完成处理程序【英文标题】:Completion handler for property in swift 【发布时间】:2015-06-01 11:52:08 【问题描述】:

我正在尝试快速使用名为 MZFormSheetController 的控件。在给出的示例中,它提供了一个属性作为完成处理程序,如果我理解正确的话,但是我在用 Swift 翻译它时遇到了困难。任何帮助将不胜感激。

这是在 obj-c 示例中。

controller.didPresentContentViewControllerHandler = ^(UIViewController *content) 
    NSLog(@"DID PRESENT");
    [self setNeedsStatusBarAppearanceUpdate];
;

我尝试了很多变体并在网络上进行了广泛的搜索,但我找不到任何可以帮助我的东西,所以我被困在这里

controller.didPresentContentViewControllerHandler = (content:UIViewController() -> () 
    println("did present1")
)

以下是相关文档:Cocoa Docs:: MZFormSheetPresentationController:: didPresentContentViewControllerHandler

【问题讨论】:

【参考方案1】:

如果你需要访问视图控制器,那么就这样做吧,

controller.didPresentContentViewControllerHandler = 
    controller in
    println("did present1")

或者如果你不需要对视图控制器的引用,你可以简单地做,

let controller = Controller()
controller.didPresentContentViewControllerHandler = 
    _ in
     println("did present1")

【讨论】:

【参考方案2】:

尝试在打开大括号后添加一个变量

controller.didPresentContentViewControllerHandler = 
    vc in
    println("did present1")
)

【讨论】:

以上是关于swift中属性的完成处理程序的主要内容,如果未能解决你的问题,请参考以下文章

是否可以在委托方法中使用完成处理程序 - Swift

For/In 循环中的完成处理程序 - swift

使用完成处理程序在 Swift 中调用连续动画

swift 4中的完成处理程序

Swift 中的完成处理程序错误

如何在 Swift 中使用完成处理程序链接函数?