当我们需要获得访问 GPS 坐标的权限时,系统会自动为我们执行此操作。与应用内购买类似,该框架会自动确认用户是否真的想购买某些东西。
iCloud怎么样?
我正在开发一个应用程序来拍照,我正在考虑将 iCloud 添加到它。为什么不 - 如果用户可以在他/她拥有的任何设备上访问他/她的相册,那就太酷了。但是每张照片都有很大的尺寸。200 张照片和 1 GB 消失了。
你的方法是什么?您是否要求用户使用 iCloud 或本地存储,或者仅使用 iCloud(如果可用)?
当我们需要获得访问 GPS 坐标的权限时,系统会自动为我们执行此操作。与应用内购买类似,该框架会自动确认用户是否真的想购买某些东西。
iCloud怎么样?
我正在开发一个应用程序来拍照,我正在考虑将 iCloud 添加到它。为什么不 - 如果用户可以在他/她拥有的任何设备上访问他/她的相册,那就太酷了。但是每张照片都有很大的尺寸。200 张照片和 1 GB 消失了。
你的方法是什么?您是否要求用户使用 iCloud 或本地存储,或者仅使用 iCloud(如果可用)?
您无需询问用户。
由于您只存储用户生成的内容,因此没有问题。
请记住,用户可以从系统设置中启用/禁用 iCloud,并且可以禁用应用程序的数据存储。
他还可以删除每个应用程序的用户数据。
如果您希望您的用户能够在本地存储和 iCloud 存储之间进行选择,恕我直言,最好的方法是检测 iCloud 是否可用,使用NSFileManager
方法,然后,如果它打开,则决定您的应用程序是否应默认同步数据。
我想这个设置应该默认开启,因为这是 iCloud 用户的预期行为,但这取决于你
无论如何,不要通过烦人的弹出窗口询问用户。第一次启动很烦人,有些用户可能不理解。
如果您需要提供一种配置方式,请将设置包添加到您的应用程序,以便用户能够配置它。
看起来苹果可能已经更新了他们的文档,因为其中一些答案。虽然我个人认为问起来可能有点刺耳(而且不知道我看到很多应用程序这样做),但 Apple 确实建议在他们的 iCloud 设计指南中这样做。他们甚至为您提供警报本身的代码:
if (currentiCloudToken && firstLaunchWithiCloudAvailable) {
UIAlertView *alert = [[UIAlertView alloc]
initWithTitle: @"Choose Storage Option"
message: @"Should documents be stored in iCloud and available on all your devices?"
delegate: self
cancelButtonTitle: @"Local Only"
otherButtonTitles: @"Use iCloud", nil];
// and
[alert show];
}
如果用户使用您的应用创建或上传数据并希望在另一台 iOS 或 OSX 设备上看到相同的数据,那么使用 iCloud 是有意义的。
不建议将 iCloud 用于应用程序私有数据,因为您将在未经批准的情况下占用用户空间。
至于提示,您可以询问用户是否要同步他们的数据,但我发现这甚至比默认同步更令人困惑,因为多个设备可能在没有同步的情况下工作并且用户不了解您的应用程序可能会处理合并。
如果空间不足,用户可以在设置中从 iCloud 中删除文件。所以没什么大不了的。