我正在开发 iOS 键盘扩展,我从 plist 文件中加载了一些键盘数据。我的版本是 iOS 8.4/Xcode 6.4。
但有时(不是每次),当 in viewdidload
of时InputViewController
,NSDictionary(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 - 打开的文件太多)\"}")
我通过关闭其他关闭垃圾文件来解决此问题,以下链接也很有帮助。