博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS Crash之NSFileHandleOperationException
阅读量:4108 次
发布时间:2019-05-25

本文共 736 字,大约阅读时间需要 2 分钟。

手机空间不足,会使客户端直接崩溃,触发NSFileHandleOperationException。所以在处理文件时,比如应用频繁的保存文档,缓存资料或者处理比较大的数据,需要考虑到空间的问题。

问题描述

1. 没有空间

手机没有存储空间了,或者需要写的文件太大,会触发"No space left on device"异常

2. 文件读写权限

NSString *path = NSHomeDirectory();    NSString *file = [path stringByAppendingPathComponent:@"1.text"];    NSFileHandle *fileHandle = [NSFileHandle fileHandleForReadingAtPath:file];    [fileHandle seekToEndOfFile];    NSString *str2 = @"Hello World";    NSData *data = [str2 dataUsingEncoding:NSUTF8StringEncoding];    [fileHandle writeData:data];    [fileHandle closeFile];

运行出现下面的错误

明明是要写文件,可只给了读的权限,所以触发了"Bad file descriptor"异常

3. 读文件失败

- readDataOfLength:

4. 获取文件数据失败

availableData Property

解决办法

在处理文件I/O操作时,需要考虑到存储空间的有限性,对大小参数进行有效性校验;另外对NSFileHandle的有效性也要判断

你可能感兴趣的文章
【Python】学习笔记——-7.2、访问限制
查看>>
【Python】学习笔记——-7.3、继承和多态
查看>>
【Python】学习笔记——-7.4、获取对象信息
查看>>
【Python】学习笔记——-7.5、实例属性和类属性
查看>>
Linux设备模型(总线、设备、驱动程序和类)之四:class_register
查看>>
git中文安装教程
查看>>
虚拟机 CentOS7/RedHat7/OracleLinux7 配置静态IP地址 Ping 物理机和互联网
查看>>
弱类型、强类型、动态类型、静态类型语言的区别是什么?
查看>>
Struts2技术内幕图书 转载
查看>>
Java异常分类
查看>>
项目中的jackson与json-lib使用比较
查看>>
Jackson Tree Model Example
查看>>
j2ee-验证码
查看>>
日志框架logj的使用
查看>>
js-高德地图规划路线
查看>>
常用js收集
查看>>
mydata97的日期控件
查看>>
如何防止sql注入
查看>>
maven多工程构建与打包
查看>>
springmvc传值
查看>>