我正在寻找watchkit扩展来从iCloud文档存储中读取文件。我从iOS应用程序中编写了该文件,该应用程序也可以读取它。我正在利用共享类,因此代码是相同的。问题是,在手表上,云容器的URL返回nil。
static func readFromFile(fileName:String) -> String?
{
let fileManager = FileManager.default
var cloudURL = fileManager.url(forUbiquityContainerIdentifier: nil)
cloudURL = cloudURL?.appendingPathComponent("Documents/\(fileName)")
do
{
return try String(contentsOf: cloudURL!)
} catch {
print (error)
return nil
}
在上面的情况中,cloudURL在手表上没有,但没有手机。对于forUbiquityContainerIdentifier
,我检查了同一个标识符用于手表和手机。我也尝试直接输入名称而不是使用nil并让它从权利中获取它。容器的格式:
iCloud.com.company.app
据我所知,Watch OS 3应该能够使用iCloud。
更新
我打印出let token = fileManager.ubiquityIdentityToken
,我得到以下内容:
获取时,WatchKit扩展[390:687462] [默认] [错误]错误 ubiquityIdentityToken:Error Domain = NSCocoaErrorDomain Code = 4099“The 与名为com.apple.bird.token的服务的连接无效。“ UserInfo = {NSDebugDescription =指向服务的连接 com.apple.bird.token无效。}
答案 0 :(得分:1)
我从Apple正式回复说,这不是Watch OS支持的功能。这与我们让他们了解的自己的文档背道而驰。希望其他人看到这种反应,它可以节省大量的时间,我最终浪费了。