【问题标题】:Write file to documents directory and permissions将文件写入文档目录和权限
【发布时间】:2016-11-14 08:47:48
【问题描述】:

我在这里把这个代码示例的 cmets 加红:

https://www.hackingwithswift.com/example-code/strings/writetofile-how-to-save-a-string-to-a-file-on-disk

// failed to write file – bad permissions, bad filename, missing permissions, 
    or more likely it can't be converted to the encoding

我尝试了该代码,它无需请求任何许可即可在设备上运行。我在文档中找不到任何有用的东西。

所以,我的问题是:作者在谈论什么权限(badmissing)?我是否需要特殊权限才能写入应用文档目录?

【问题讨论】:

    标签: ios swift permissions documents


    【解决方案1】:

    iOS 中没有像 android 权限那样写文件的特殊权限。在 iOS 中,我们只需要访问设备中的联系人和照片库中的图像的权限。有关将文件写入二级存储的更多信息,请查看苹果 documentation.

    【讨论】:

      【解决方案2】:

      不,您的应用不需要特殊权限,但是确实存在应用可能无法写入文件的情况。

      一个例子是,如果您的应用程序对其文件使用磁盘保护,并且您尝试在磁盘加密时写入文件夹。其他例子有:

      1. 磁盘已满。
      2. 该文件正在由另一个进程写入(即,您正在后台 URLSession 中将内容下载到该文件)。
      3. 路径包含一些无效字符(例如“:”)。

      如果确实发生了错误,通常可以通过检查错误来确定原因。

      注释似乎是一个通用占位符,表示在编写文件时接收错误的一些可能原因,因此如果您要使用代码并且遇到错误情况,你会有一些地方开始。

      documentation 是有疑问时参考的好地方。

      【讨论】:

      • @ian-bell 值得注意的是,iOS 上的 documents 目录不像 Mac 上那样是共享资源。每个应用程序都有自己的沙盒容器,其中包含可以写入的子目录 - 文档目录只是其中之一。修改这些目录中的文件不会影响应用之外的任何内容。
      • 我注意到现在您可以使用 App Group 在应用程序之间创建共享文件夹,并通过 containerURLForSecurityApplicationGroupIdentifier 引用该文件夹
      猜你喜欢
      • 2010-11-19
      • 1970-01-01
      • 2017-01-15
      • 2017-11-03
      • 1970-01-01
      • 2012-02-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多