有人在 Swift 上使用 iRareMedia 的 iCloudDocumentSync 吗?我在 Objective-C 中成功地使用了这个框架,但在 Swift 中无法入门。在 Objective C 中,应用程序使用以下内容初始化 iCloud:
[[iCloud sharedCloud] setDelegate:self]; // Set this if you plan to use the delegate
[[iCloud sharedCloud] setVerboseLogging:YES]; // We want detailed feedback about what's going on with iCloud, this is OFF by default
[[iCloud sharedCloud] setupiCloudDocumentSyncWithUbiquityContainer:nil];
我不知道如何将其中两个转换为 Swift。该类订阅了 iCloudDelegate 协议(protocol):
class AppDelegate: UIResponder, UIApplicationDelegate, iCloudDelegate {
第一次
[[iCloud sharedCloud] setDelegate:self];
我尝试了 iCloud.sharedCloud().setDelegate(self)
但我收到编译器错误:无法使用类型为“(AppDelegate)”的参数列表调用“setDelegate”
我也尝试过 iCloud.sharedCloud().delegate = self
(因为 delegate 是 iCloud 的一个属性),但我收到编译器消息:“delegate”的使用不明确
第二个 [[iCloud sharedCloud] setVerboseLogging:YES];
使用 iCloud.sharedCloud().setVerboseLogging = true
转换得很好
第三个[[iCloud sharedCloud] setupiCloudDocumentSyncWithUbiquityContainer:nil];
我试过了
iCloud.sharedCloud().setupiCloudDocumentSyncWithUbiquityContainer(nil)
这让我明白了:“AnyObject”类型的值没有成员“setupiCloudDocumentSyncWithUbiquityContainer”,错误插入符号在 sharedCloud 的“s”下。
我很困惑。我做了很多 Objective-c 到 Swift 的方法转换,所以我对这个游戏并不陌生,但我想不通。如果有人在 Swift 中使用 iRareMedia 的 iCloudDocumentSync 框架,我将不胜感激任何帮助和见解。
谢谢。
最佳答案
我不知道为什么,但是在 UIViewController 中设置 iCloud 委托(delegate)和初始化语句允许它们全部在 Swift 中工作。在我的应用程序的第一个 View Controller 中,我有这个:
cloud = iCloud.sharedCloud() as! iCloud
cloud.delegate = self
cloud.verboseLogging = true
cloud.updateFiles()
一切正常。
关于swift - 在 Swift 中使用 iRareMedia iCloudDocumentSync,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32744835/