We’ve received an email or two asking how to use Zumero sync from Swift code. If you’ve used other Objective-C frameworks in your Swift projects, the steps are just what you’d expect. If you haven’t, don’t worry - it’s not that bad.
Create a Swift-based project, as usual.
$ cat >> Podfile pod 'ZumeroSync' $ pod install Analyzing dependencies Downloading dependencies Installing ZumeroSync (18.104.22.16889) Installing sqlite3 (22.214.171.124) Generating Pods project Integrating client project [!] Please close any current Xcode sessions and use `swiftnzum.xcworkspace` for this project from now on.
We’ll now open the workspace as instructed, and it looks like we’re all set:
Except that Swift has no idea what we’re talking about:
Add a new Objective-C file. Call it what you like:
Yes, we do want to create a bridging header:
ZumeroSync import to that header:
// // Use this file to import your target's public headers that you would like to expose to Swift. // #import <ZumeroSync/ZumeroSync.h>
We can delete the “dummy” Objective-C file (optional, but it serves no purpose here):
And voilà, Swift has heard of Zumero:
As for the actual usage, it’s just a Swift-y version of the Objective-C call:
var syncError: NSError? let ok = ZumeroSync.Sync("foo", cipherKey: nil, serverUrl: "http://example.com/", remote: "dbfilename", authScheme: nil, user: nil, password: nil, error: &syncError)