NSFileHandle writeData:异常处理

2024-04-26

这可能是一个相当广泛的问题,但我找不到任何在线资源来解决或解释这个问题。

问题是创建后NSFileHandle *writer = [NSFileHandle fileHandleForWritingAtPath:"path"]当你使用[writer writedata:"NSData"]根据苹果文档,有可能发生的异常情况。

“如果文件描述符已关闭或已关闭,则此方法会引发异常 如果接收者代表未连接的管道或套接字,则无效 端点,如果文件系统上没有剩余空间,或者如果有任何其他 发生写入错误。” - 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,但对我来说如何去做这件事并不是很明显。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

NSFileHandle writeData:异常处理 的相关文章

  • 以编程方式从 uiwebview 获取选定元素?

    目前我正在服用这个示例网站 http www fusioncharts com demos business management dashboard view Default asp并显示在我的网络视图中 网页显示正确 现在我试图弄清楚用
  • 当输入集中在移动 Safari 上时,页面底部出现不需要的填充

    我正在移动 safari 上使用文本区域 当文本区域聚焦时 视口似乎会在文档下方添加填充 当检查和选择区域时 它不会解析为元素 甚至不会解析为 html 节点 文本区域在屏幕上的位置或是否绝对位置似乎并不重要 当其聚焦时 填充始终存在 有时
  • 使用 GCD 异步 UITableViewCell 图像加载

    我目前正在尝试加载 Flickr 照片的 UITableView 列表 cs193p iOS 斯坦福大学 作业 5 为了避免 UI 阻塞事件 我将每个单元格的缩略图下载推迟到不同的队列中 但确实将 UI 更新回主队列中 此代码不会异步加载图
  • 使用动画更改 UIView 背景颜色

    我想改变我的UIView带有过渡动画的背景颜色 例如 如果视图是红色的 我将其更改为蓝色 蓝色将从屏幕底部向上滑动到顶部并充满整个屏幕 我想通过制作一个来做到这一点UIView具有相同大小和所需颜色 然后将其从屏幕外一直动画到顶部 但这似乎
  • iOS 中的 NSCachesDirectory 和 NSDownloadsDirectory 有什么区别?

    我想将下载的杂志保存到我的 iOS 应用程序中的一个目录中 它似乎NSCachesDirectory and NSDownloadsDirectory是合适的 我不知道它们之间有什么区别 以及哪一种适合下载杂志 任何建议表示赞赏 内存不足时
  • 如何“旋转”图层/视图(例如,就像在 enigmo 中一样)

    我知道如何根据触摸移动图层 但我也希望能够旋转图像 是否有任何示例代码显示如何执行此操作 或者有人可以给我一些建议吗 Thanks 最简单的方法是使用图层的变换属性 float angle M PI rotate 180 or 1 radi
  • iOS 中的 FacebookSDK 不显示关闭按钮且无法关闭

    您好 我已经为 iOS 6 应用程序集成了 Facebook SDK Facebook 身份验证和共享工作完美 但没有提供关闭 FB 对话框的规定 当FB对话框打开时 只有在身份验证成功后才会关闭 没有关闭或导航回来的规定 我如何制作关闭按
  • iOS UITableViewCellAccessoryCheckmark 在每次滚动时可见

    我有一个列表 我将其用作复选框 我已启用或禁用选择行上的复选标记 但是当我滚动列表时 它会在每 10 行之后标记行 void tableView UITableView tableView didSelectRowAtIndexPath N
  • 左右并排放置两个 UILabels,而不知道左标签中文本的字符串长度

    在 iPhone fb 应用程序的照片选项卡中 对于每个表格视图单元格 他们都会放置相册标题 后跟相册中的图片数量 例如 第一张专辑 22 最后也是最后的 12 我认为有两个标签 一个用于标题 一个用于数字 因为数字实际上是不同的 UICo
  • Apple 如何通知 iOS 应用程序内购买 (IAP) 退款?

    我在我的应用程序中成功实现了 Apple iOS IAP 并在沙箱中进行了测试 效果很好 我担心用户可能会通过 IAP 购买商品 将其下载到我的应用程序中 然后向 Apple 投诉并获得退款 没有明显的方式将退款报告给我的应用程序 它们是否
  • 枚举 NSString 的最佳方法

    我正在寻找枚举 objc 对象 例如 NSString 的方法 我记得 Xcode4 版本中有一个新功能 它提供了一种新的 enum 方法 但不清楚 有人知道吗 好吧 我自己回答 我想我犯了一个错误 这就是我上面提到的新功能 typedef
  • iphone navigationController :在退出当前视图之前等待 uialertview 响应

    我有一个带有由导航控制器管理的后退按钮的视图 我想在用户单击后退按钮时检查文件是否已保存 如果文件已保存 您将返回到上一个视图 否则 uialertview 会询问您是否要保存文件 所以我这样做了 但视图消失了 然后警报视图出现了 void
  • 关于 S3 文件传输的权限

    我正在使用 S3TransferManager Sample 进行测试 我创建了Cognito并设置了IAM并最后更改了constants swift文件 我上传没有问题 但下载失败 错误信息是 下载失败 错误域 com amazonaws
  • 如何使用Appium获取ios中的应用程序信息,例如应用程序版本、设备操作系统版本?

    我正在使用 appium 测试应用程序并将测试输出集成到 testrail 中 我需要在 testrail 中添加设备和应用程序信息 在 Android 中 我可以使用 adb 命令获取应用程序和设备信息 例如设备型号 设备版本和应用程序版
  • .net MVC 将 MP4 流式传输到 iDevice 问题

    我一直在编写用于提供视频服务的一段代码 但遇到了一些问题 代码如下 public ResumingFileStreamResult GetMP4Video string videoID if User Identity IsAuthenti
  • 如何使用 Expo 播放 Youtube 视频

    我正在尝试使用反应本机 YouTube 组件 https github com inProgress team react native youtube在我的世博项目中 但是 我无法让它发挥作用 到目前为止 我所拥有的只是带有红色边框的黑屏
  • 在React-native中,如何更改NavigatorIOS的样式

    在react native中 如何更改NavigatorIOS的样式 例如背景颜色 谢谢你 var speedNews React createClass render function return
  • VNFaceObservation BoundingBox 在纵向模式下不缩放

    作为参考 这源于一个问题视觉API 我正在努力使用Vision通过a检测图像中的人脸VNDetectFaceRectanglesRequest 它在确定图像中正确的人脸数量并提供boundingBox对于每张脸 我的麻烦是由于我UIImag
  • 去除iOS输入阴影

    在 iOS Safari 5 上 我必须遵循输入元素 顶部内部阴影 我想删除顶部阴影 错误 webkit appearance不保存 目前的风格是 input border radius 15px border 1px dashed BBB
  • 制作一个固定大小的 UIView,如 UISwitch(使用 IBDesignable)

    当我使用时本指南 http iphonedev tv blog 2014 12 15 create an ibdesignable uiview subclass with code from an xib file in xcode 6要

随机推荐

  • 需要根据属性值在 ant 脚本中设置路径 (cp)

    我想根据属性的值将路径变量 cp 设置为两个值之一 例如 以下是我想要实现的目标 但我不确定如何让它正常工作
  • 如何使用 pysolr 对 solr 进行原子更新?

    我找不到关于如何使用 pysolr 更新 solr 的合适文档 截至 2014 年 11 月原子更新 https github com toastdriven pysolr commit c49be48d459448532b5ad0f505
  • 使用 TcpClient 和反应式扩展从 Stream 读取连续字节流

    考虑以下代码 internal class Program private static void Main string args var client new TcpClient client ConnectAsync localhos
  • 删除 Pandas DataFrame 中的多个行范围

    例如 如果我们有一个大小为 100 5 的 Pandas DataFrame 并且想要删除多个行范围 不是多行或一系列行 而是多个行范围 通过索引 有没有办法做到这一点而不必循环索引 举个例子 如果我想删除 Pandas DataFrame
  • Git rebase 分支与所有父分支(或依赖子分支)

    是否可以使用 Git 来对分支及其所有父分支进行变基 我认为 父分支 是在这里使用的正确形式 根据您的观点 您也可以将它们称为依赖子分支 但是 遵循提交的父指针将让您到达这些分支 所以恕我直言称它们为 父分支 是公平的 我经常使用分支作为快
  • 使用 Jackson 对 List 进行自定义反序列化

    我正在尝试编写一个自定义反序列化器 以便减少从其他地方收到的大量数据 我从反序列化器返回自定义对象列表 我的问题是 如果这是我的自定义反序列化器 我该怎么做 public class MyCustomDeserializer extends
  • 如何避免Spring的@RequestMapping路径冲突?

    我想使用 Spring 定义 REST API 我有这 2 个 Controller 方法 RequestMapping value machineId workspaces workspaceId method RequestMethod
  • 从左到右和从右到左滑动图像

    我正在开发一个应用程序 我想在其中添加可以从左到右和从右到左滑动的图像 如下图所示 内部的白色游戏图像应该从左到右移动 反之亦然 到目前为止我所做的是 我能够从左到右移动单个图像 反之亦然 但我想要设置背景图像 就像上面的圆形黑色背景一样
  • 更改 Mac 上的默认 python 版本 - 安装 Biopython

    我的 Mac 预装了 python 2 7 作为默认的 python 版本 但是 许多软件包和软件不再支持该版本 我搜索了几个在线论坛 了解如何更改 mac 上的默认 python 版本 但是 它们似乎都不起作用 我还安装了最新版本的 py
  • 如何使用 Validators 类在 Angular2 中显示不同的电子邮件验证消息?

    我在用表格组 表单生成器 and 验证者类来验证 Angular2 应用程序中的表单 这就是我定义电子邮件和密码验证所需的验证规则的方式 export class LoginComponent implements OnInit login
  • 在 mac OS X 上挂载批准回调

    我想在 Mac OS X 上授权 USB CD 现在我使用 DiskArbitration 框架在用户模式下获取 MountApprovalCallback 但这个回调的问题在于它没有保证 如果我会得到回调我正在使用CFUserNotifi
  • Twig 用实体替换非 ASCII 字符

    嗯 这真的很奇怪 Twig 我在 Symfony 3 中使用它 将非 ascii 字符 例如 替换为实体 例如 322 但是 仅在 Javascript 部分 我不知道为什么以及如何禁用它 编辑 是的 我在 Netbeans 和 HTML
  • node_modules/@types/googlemaps/index.d.ts 中出现错误 - 元组类型元素列表不能为空

    在尝试整合的同时角度谷歌地图 agm在我的 Angular 项目中 我收到此错误 某些配置有问题或者可能是我错过了一些东西我正在这个项目中使用材料 6 和角度 6 感谢您的帮助 在终端控制台中 ERROR in node modules t
  • Java 用户帐户管理解决方案

    我目前正在开发一个依赖权限机制来管理用户内容的 Java Web 应用程序 这当然意味着我们需要管理用户 我们当前的用户管理系统是一个内部系统 用于管理 RDBMS 中有关用户 组以及用户和权限的信息 该系统可以工作 但维护起来很麻烦 我想
  • HTML 时间输入类型 - 如何在单击任意位置而不仅仅是单击时钟图标时选择时间菜单视图

    I working on the time input type in HTML my problem is when I click on the small clock icon on the right side of the inp
  • AES-256 加密和 Apple iTunes 导出限制

    我有一个很大的问题 我开发了 3 个应用程序 2 个用于 IOS 1 个用于 mac osx 来加密文件RNCryptor https github com rnapier RNCryptor 女巫是一个CCCryptor AES 加密 包
  • CUDA Visual Studio 2010 Express 构建错误

    我正在尝试在 64 位 Windows 7 上使用 Visual Studio 2010 Express 在 Windows 上开始 CUDA 编程 我花了一段时间来设置环境 然后我刚刚编写了我的第一个程序 helloWorld cu 目前
  • EntityDataSource 在查询中将 * 替换为 % 通配符

    我有一个在很多地方使用 EntityDataSource 的应用程序 在 EDS 中 我根据 TextBox 中的用户输入手动构建Where 子句 我希望用户在查询数据时能够输入 星号 而不是 有没有像使用 Entity SQL 或 EDS
  • .crx 文件在 Chrome 中安装

    我刚刚创建了一个非常简单的 chrome 扩展 它运行良好 但是当我转换为 crx 文件并尝试用 chrome 打开它时 没有任何反应 我的chrome浏览器版本是19 0 1081 2 dev m 我的扩展使用jquery 1 4 2 m
  • NSFileHandle writeData:异常处理

    这可能是一个相当广泛的问题 但我找不到任何在线资源来解决或解释这个问题 问题是创建后NSFileHandle writer NSFileHandle fileHandleForWritingAtPath path 当你使用 writer w