如何在Swift中跳过完成处理程序

时间:2019-06-18 11:36:04

标签: ios swift

我有一个函数在完成处理程序中返回Int值,但是有时,我想在从其他类调用时跳过完成处理程序,而只具有Int值。下面是我的代码。这里的totalEvents是带有完成处理程序的。

就像我需要在下面的方法中调用

let initialDBCount = self.totalEvents()

func totalEvents(completion: @escaping (_ eventsCount: Int? ) -> Void ) {

    self.fetchEvents(forPredicate: nil, withSort: nil, andLimit: nil, completion: { (events) -> Void in
        guard let fetchEvents = events else {
            return
        }
        if fetchEvents.count > 0 {
            completion(fetchEvents.count)
        }
    })
}

2 个答案:

答案 0 :(得分:1)

completion处理程序设为可选,并将nil设置为其默认值,即

func totalEvents(completion: ((_ eventsCount: Int?)->())? = nil)

用法:

totalEvents可以通过两种方式调用,

1。。没有completion处理程序

totalEvents()

2。。使用completion处理程序

totalEvents { (value) in
    print(value)
}

答案 1 :(得分:0)

使完成是否可选(_eventsCount:Int?)->())? = nil或致电

之类的补全
$inc