我的OS X Lion应用程序允许用户将iCloud文件提供给公众。我使用URLForPublishingUbiquitousItemAtURL
。
我可以在调用该方法后向用户显示该URL。但是,在文件发布(而不是更改)后,是否还有一种方法可以获得相同的URL?例如,如果用户想在另一台设备上看到该URL?
是的我可以再次致电URLForPublishingUbiquitousItemAtURL
,但我怎么知道文件是否已经发布?
我的第一个想法是在iCloud中创建某种键值数据,其中包含所有文件(具有公共URL)的URL。但我无法相信没有更简单的方法......
谢谢! 丹尼尔
答案 0 :(得分:2)
如果我正确理解您的问题,您想要在iCloud中检索或创建文件的公共URL。
如果是这种情况,请使用URLForPublishingUbiquitousItemAtURL:expirationDate:error:
它返回一个URL,可以通过电子邮件发送给用户下载文件。
- (NSURL *)URLForPublishingUbiquitousItemAtURL:(NSURL *)url expirationDate:(NSDate
**)outDate error:(NSError **)error
<强>参数:强>
url - 指定云中要包含的项目的URL 分享。 URL必须以从中返回的基本URL作为前缀 URLForUbiquityContainerIdentifier :(第61页)对应的方法 到项目的位置。
outDate - 输入时,指向日期对象变量的指针。上 输出,此参数包含项目为no之后的日期 返回的URL可用的时间更长。您可以为此指定nil 参数如果您对日期不感兴趣
error - 输入时,指向NSError对象的变量的指针。如果 发生错误时,此指针设置为包含的NSError对象 有关错误的信息。您可以为此参数指定nil 如果您不想要错误信息。
返回值
用户可以在网址下载该项目副本的网址。如果因任何原因无法创建URL,则返回nil。
<强>讨论强>
此方法创建指定文件的快照,并将该副本放在临时iCloud位置 其他用户可以使用返回的URL访问它。快照反映了文件的内容 生成URL的时间,并且在对原始文件进行后续更改时不会更新 用户的iCloud存储。快照文件在指定的URL中保持可用,直到指定的日期为止 outDate参数,之后会自动删除。 您的应用程序必须能够访问网络才能使此调用成功。
因此,如果您说,您需要检查它是否已成功发布,请检查错误。