问题是在创建NSfileHandle * writer = [NSfileHandle fileHandleForWritingAtPath:“path”]之后,当你使用[writer writedata:“NSData”]时,根据apple doc可能会触发正弦可能的异常.
“This method raises an exception if the file descriptor is closed or is
not valID,if the receiver represents an unconnected pipe or socket
endpoint,if no free space is left on the file system,or if any other
writing error occurs.” – APPLE DOC
我想知道的是,在写入之前,我们可以通过任何方式处理或验证这些问题而无需使用任何try catch或检查条件检查中的每个错误.我们可以使用NSError来处理这个问题吗?
解决方法 我会说“不”.如果您在写入之前确实设法找到涵盖所有可能的故障的测试,那么在初始测试之后没有什么可说的写 *** 作可能会失败(考虑写入一个免费1KB的文件系统并且您想写4KB).因此,在@ try / @ catch块中包含对这些方法的调用在我看来是最好的方法.如果你想要失败的细节(你当然应该想要),这些包装器可以返回NSError **.
- (BOol)writeData:(NSData *)data tofileHandle:(NSfileHandle *)fileHandler error:(NSError **)error{ @try { [fileHandler writeData:data]; } @catch (NSException *e) { if (error != NulL) { NSDictionary *userInfo = @{ NSLocalizedDescriptionKey : @"Failed to write data",// Other stuff? }; *error = [NSError errorWithDomain:@"MyStuff" code:123 userInfo:userInfo]; } return NO; } return YES;}
您当然希望将失败的原因纳入NSError,但对于我来说,如何进行此 *** 作并不是很明显.
总结以上是内存溢出为你收集整理的ios – NSFileHandle writeData:异常处理全部内容,希望文章能够帮你解决ios – NSFileHandle writeData:异常处理所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)