0

我正在开发 iOS 键盘扩展,我从 plist 文件中加载了一些键盘数据。我的版本是 iOS 8.4/Xcode 6.4。

但有时(不是每次),当 in viewdidloadof时InputViewControllerNSDictionary(contentsOfFile:)返回 nil。当我经常在键盘和另一个键盘之间切换时出现。

我检查了什么:

  • 该文件不是零。
  • 文件名根本没有改变。
  • 当它为零时再试一次。
  • contentsOfUrl 而不是文件路径。
  • plist 文件中只有 ascii 代码。

我怀疑的是:

  • 进程未正确结束时的文件 io 问题。
  • 快速的问题

感谢 Aderstedt,我检查了 NSError。

let nsdata = NSData(contentsOfFile: file, options: nil, error: &nserror)
if nserror != nil {
    NSLog("load error: \(nserror?.description)")
}

load error: Optional("Error Domain=NSCocoaErrorDomain Code=256 \"操作无法\U2019t完成。(NSCocoaErrorDomain error 256.)\" UserInfo=0x17066c700 {NSFilePath=/private/var/mobile/Containers/Bundle/Application/ "我的应用程序", NSUnderlyingError=0x174845df0 \"无法完成操作\U2019。(NSPOSIXErrorDomain 错误 24 - 打开的文件太多)\"}")

我通过关闭其他关闭垃圾文件来解决此问题,以下链接也很有帮助。

在 iOS/iPhone 上:“打开的文件太多”:需要列出打开的文件(如 lsof)

4

0 回答 0