麻烦将功能从objective-C转换为swift

时间:2017-01-06 02:31:56

标签: ios objective-c swift

我正在使用一个使用下面这个功能的框架,我尝试使用网站将其转换为swift,但它无法这样做。任何帮助将不胜感激!

[databaseChanges enumerateDocumentChangeDetailsUsingBlock:^(METDocumentChangeDetails *documentChangeDetails, BOOL *stop) {
      ...
    }];

3 个答案:

答案 0 :(得分:1)

试试这个:

databaseChanges.enumerateDocumentChangeDetailsUsingBlock({
    (documentChangeDetails:METDocumentChangeDetails,
     stop:UnsafeMutablePointer<ObjCBool>) -> Void in
    // ...
})

答案 1 :(得分:1)

框架是否可以在swift中使用?如果不是,则必须按照此处所述创建桥接标头:

https://developer.apple.com/library/content/documentation/Swift/Conceptual/BuildingCocoaApps/MixandMatch.html

然后,您将能够轻松找出如何使用Xcode自动完成调用此功能。

只需输入:

databaseChanges.enu

xcode将为您提供应该调用的方式。

修改

我假设你正在使用this library。哪个提供对swift的支持。所以你的问题纯粹是关于如何用Swift 3语法编写块。 matt's answer有解决方案。

答案 2 :(得分:1)

在Swift 3中:

databaseChanges.enumerateDocumentChangeDetails { details, stop in

}

它可能会提示各种其他语法噪音(detailsstop的类型等),但这会将其提炼到基本要素,使用类型推断来保持代码的美观和表现力

如果你想阻止它,那就是

stop.pointee = true