UIDocumentBrowserViewController为空

时间:2017-08-03 09:19:47

标签: ios11 xcode9-beta uidocumentbrowservc

我正在使用UIDocumentBrowserViewController构建应用。一切正常(地点和文件出现,并且可以创建,可选)

突然间,文档浏览器显示为空。没有地点,没有文件......

enter image description here

在今天之前,浏览器在模拟器中是空的,但在设备上工作正常。现在问题是他“迁移”到了我的iPad。我认为这是一个测试版问题,但是如果知道是否还有其他人遇到了这个问题,我会很感激能找到修复/解决方法吗?

...试过

  • 清理构建
  • 删除模块缓存/派生数据
  • 删除/重新安装应用
  • 重新启动Xcode
  • 重启iPad
  • 重新安装Xcode
  • 重新启动Mac

我开始认为我在想象它过去在运作了!

Xcode 9.0 beta 4(9M189t)

更新

我刚发现使用

let dbvc = UIDocumentBrowserViewController(forOpeningFilesWithContentTypes:[kUTTypePlainText as String])

而不是我的自定义UTI工作。然后再次恢复到我自己的UTI 仍然工作。

3 个答案:

答案 0 :(得分:2)

我有同样的问题。我找到的解决方法是不删除"图像"生成的info.plist中的字典。我已经对info.plist进行了更改,并在某些时候将其替换为另一个没有"图像"在plist中。这是您需要的部分:

<dict>
        <key>CFBundleTypeIconFiles</key>
        <array/>
        <key>CFBundleTypeName</key>
        <string>Images</string>
        <key>CFBundleTypeRole</key>
        <string>Viewer</string>
        <key>LSHandlerRank</key>
        <string>Alternate</string>
        <key>LSItemContentTypes</key>
        <array>
            <string>public.image</string>
        </array>
    </dict>

把它放回(或不取出)消除了这个问题。希望这会有所帮助。

答案 1 :(得分:0)

我遇到了这个问题,直到我在支持的文档类型列表中添加了一个缺少参数的info.plist:

文件类型&gt;项目&gt; 处理程序排名(字符串)备用

答案 2 :(得分:0)

应用程序的文档目录中没有文件吗?

如果应用程序的文档目录为空,则它在UIDocumentBrowserViewController中不可见。

尝试

 override func viewDidLoad() {
    super.viewDidLoad()

    let fm = FileManager.default
    let documentsPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first!

    let filePath = documentsPath + "/myfile.txt"
    if !fm.fileExists(atPath: filePath) {
        fm.createFile(atPath: filePath, contents: nil, attributes: [:])
    }
}