使用iRareMedia iCloudDocumentSync和Swift

时间:2015-09-23 16:29:21

标签: swift icloud

有人使用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,我会感激任何帮助和见解。

感谢。

1 个答案:

答案 0 :(得分:1)

我不知道为什么,但是在UIViewController中设置iCloud委托和初始化语句允许它们在Swift中工作。在我的应用程序的第一个视图控制器中,我有:

    cloud = iCloud.sharedCloud() as! iCloud
    cloud.delegate = self
    cloud.verboseLogging = true
    cloud.updateFiles()

并且一切都按原样运作。