如果您试图保存到核心数据,但剩余的磁盘空间不足,会发生什么情况?
我认为保存操作将生成某种NSError吗?如何告诉它是磁盘空间错误而不是磁盘写入期间的其他错误?
如果您试图保存到核心数据,但剩余的磁盘空间不足,会发生什么情况?
我认为保存操作将生成某种NSError吗?如何告诉它是磁盘空间错误而不是磁盘写入期间的其他错误?
尝试填充磁盘几个小时后,我发现你会遇到以下错误:
NSSQLiteErrorDomain = 13;
NSUnderlyingException = "error during SQL execution : database or disk is full";
获取这个错误相当困难:
在实现其错误处理 API 时,CoreData 开发人员似乎做出了一个不好的选择。他们重载了 NSCocoaErrorDomain 并传递了在此处定义的 SQLite 错误码,而没有定义 NSCoreDataErrorDomain。
这里是 SQLite 错误码。
您可以通过查询NSError实例并解析涉及错误域的结果来找出错误。其中一个域可能具有您正在寻找的错误代码:
// Predefined domain for errors from most AppKit and Foundation APIs.
FOUNDATION_EXPORT NSString *const NSCocoaErrorDomain;
// Other predefined domains; value of "code" will correspond to preexisting values in these domains.
FOUNDATION_EXPORT NSString *const NSPOSIXErrorDomain;
FOUNDATION_EXPORT NSString *const NSOSStatusErrorDomain;
FOUNDATION_EXPORT NSString *const NSMachErrorDomain;
NSPersistentStoreSaveError
、NSPersistentStoreIncompleteSaveError
或NSSQLiteError
。当然,如果你想证明这一点,你必须填满一个设备。编写一个使用大型图像的示例应用程序非常简单。安德鲁 - adonoho