我在新的Swift项目中使用Objective-C Firebase框架时遇到了麻烦.我来自大多数C#背景,所以Swift闭包语法还不是很清楚.
以下是代码在Objective-C中的工作方式,其中f是Firebase对象
[f observeEventType:FEventTypeValue withBlock:^(FDataSnapshot *snapshot) { NSLog(@"%@ -> %@", snapshot.name, snapshot.value); }];
XCode自动建议这种语法,我还没有找到一个有效的解决方案.
f.observeEventType(FEventTypeValue, withBlock: ((FDataSnapshot!) -> Void)?)
我想像在Objective-C示例中那样将FDataSnapshot数据分配给变量.谢谢
这是Swift的等价物:
f.observeEventType(FEventTypeValue, withBlock: { snapshot in println("\(snapshot.name) -> \(snapshot.value)") })
这里的关键是in
将闭包的参数赋给变量的关键字