有人使用iRareMedia的iCloudDocumentSync和Swift吗?我使用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协议:
class AppDelegate: UIResponder, UIApplicationDelegate, iCloudDelegate {
第一个
[[iCloud sharedCloud] setDelegate:self];
我尝试了iCloud.sharedCloud().setDelegate(self)
但是我遇到了编译错误:无法调用' setDelegate'使用类型'(AppDelegate)'
我也试过iCloud.sharedCloud().delegate = self
(因为委托是iCloud的一个属性),但是我得到了编译器消息:模糊地使用'委托'
第二个[[iCloud sharedCloud] setVerboseLogging:YES];
转换为iCloud.sharedCloud().setVerboseLogging = true
第三个[[iCloud sharedCloud] setupiCloudDocumentSyncWithUbiquityContainer:nil];
我试过
iCloud.sharedCloud().setupiCloudDocumentSyncWithUbiquityContainer(nil)
让我:类型的价值' AnyObject'没有成员' setupiCloudDocumentSyncWithUbiquityContainer'在' s下的错误插入符号sharedCloud。
我感到困惑。我已经完成了很多Objective-c到Swift的方法转换,所以我对这个游戏并不陌生,但我无法解决这个问题。如果有人在使用iRareMedia的iCloudDocumentSync框架与Swift,我会感激任何帮助和见解。
感谢。
答案 0 :(得分:1)
我不知道为什么,但是在UIViewController中设置iCloud委托和初始化语句允许它们在Swift中工作。在我的应用程序的第一个视图控制器中,我有:
cloud = iCloud.sharedCloud() as! iCloud
cloud.delegate = self
cloud.verboseLogging = true
cloud.updateFiles()
并且一切都按原样运作。