小编典典

使用Swift处理Objective-C块

swift

我在新的Swift项目中使用Objective-C Firebase框架时遇到麻烦。我主要来自C#背景,因此Swift闭合语法尚不清楚。

这是在f为Firebase对象的情况下在Objective-C中代码的工作方式

[f observeEventType:FEventTypeValue withBlock:^(FDataSnapshot *snapshot) {
  NSLog(@"%@ -> %@", snapshot.name, snapshot.value);
}];

XCode auto建议使用这种语法,而我还没有找到可行的解决方案。

f.observeEventType(FEventTypeValue, withBlock: ((FDataSnapshot!) -> Void)?)

我想像Objective-C示例一样将FDataSnapshot数据分配给一个变量。谢谢


阅读 233

收藏
2020-07-07

共1个答案

小编典典

这是Swift的等效项:

f.observeEventType(FEventTypeValue, withBlock: {
    snapshot in
    println("\(snapshot.name) -> \(snapshot.value)")
})

这里的关键是in关键字,用于将变量的闭包分配给变量

2020-07-07