float INFINITY 可以通过 NSCoder 存档,但不能取消存档

2023-12-23

我必须存档一个float有价值INFINITY,然后再将其解档。
这是我的示例代码:

归档对象:

@interface CodeInf : NSObject <NSCoding>
@end
@implementation CodeInf
- (void)encodeWithCoder:(NSCoder *)encoder {
    float inf = INFINITY;
    [encoder encodeFloat: inf forKey:@"INFINITY"];
}
- (id)initWithCoder:(NSCoder *)decoder {
    if (self = [super init]) {
        float decodedInf = [decoder decodeFloatForKey: @"INFINITY"];
    }
    return self;
}
@end

这是归档/解归档代码:

CodeInf *myCodeInf = [[CodeInf alloc] init];
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:myCodeInf];
myCodeInf = [NSKeyedUnarchiver unarchiveObjectWithData:data];

归档有效,但解除归档会引发错误:

* 由于未捕获的异常“NSRangeException”而终止应用程序,原因:“*-[NSKeyedUnarchiverdecodeFloatForKey:]:值(inf) 键 (INFINITY) 太大,无法容纳 32 位浮点'

这是 dearchiver 中的错误,还是我做错了什么?


看起来像一个错误。向 Apple 提交错误报告。

作为解决方法使用encodeDouble and decodeDoubleForKey- 你可以保持你作为一个人的价值floatC 规则不需要强制转换。

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

float INFINITY 可以通过 NSCoder 存档,但不能取消存档 的相关文章

随机推荐

  • Objective-C 获取可为空 bool 的方法是什么?

    我应该如何获取一个可以在 Objective C 中分配 true false 和 nil 的 bool 值 Objective C 这样做的方式是什么 很像 C 的 Nullable 我希望能够使用 nil 值来表示未定义 An NSNu
  • 使用Gmail API发送电子邮件,在正文中编码希腊字符

    我正在更新一个用于发送电子邮件的应用程序 以使用 GMAIL API 而不是 SMTP 我遇到电子邮件编码问题 主题已按其应有的方式显示 但主体未正确显示 以下是收到的邮件截图 我用来发送电子邮件的代码 public bool SendMa
  • 如何自定义列系列中的列宽?

    我想知道是否可以自定义条形图的列宽 Regards Franco 简短的回答 是的 请参阅this http lvcharts net App documentation beta LiveCharts Wpf ColumnSeries 默
  • 获取动态添加文本框的值

    我有两个文件test py and test kv在测试 kv中text Add More 添加行动态垂直位置 我正在 py 中创建动态 id self add widget Row button text str self row cou
  • 如何确定鼠标事件附近的 SVG 元素?

    我正在使用 D3 JavaScript 库构建 SVG 图表并向其分配鼠标事件 SVG 图可能很复杂 由许多任意路径元素组成 我一直在努力找出一种方法来确定鼠标悬停事件上的所有附近元素 因此 例如 当鼠标光标在图表上移动时 我可以确定距离光
  • 在 Git 分支名称中使用斜杠字符

    我很确定我在一个流行的 Git 项目中的某个地方看到分支有类似 feature xyz 的模式 但是 当我尝试使用斜杠字符创建分支时 出现错误 git branch labs feature error unable to resolve
  • 从 BottomSheetDialogFragment 选择项目然后选择底部导航菜单后,搜索无法按预期工作

    我遇到了一个尴尬的情况 我两天来一直试图找到原因并解决它 但我失败了 我先解释一下 启动应用程序时recyclerView在 HomeFragment 中填充了从以下位置获取的数据Firestore 我在顶部的工具栏上有一个搜索栏 当我输入
  • 在新选项卡中打开 URL

    我有一个像这样的网址 Response Redirect webpages frmCrystalReportViewer aspx VoucherNo txtVoucherNo Text VoucherDate txtVoucherDate
  • argparse:当存在子解析器时如何分离未知(和可选)参数。(子解析器也是可选的)

    我有以下代码 parser argparse ArgumentParser allow abbrev False add help False parser add argument conf nargs 1 parser add argu
  • 从 CPAN 安装模块时,dmake 无法识别命令 [重复]

    这个问题在这里已经有答案了 尝试使用 Active Perl 从 CPAN 安装 Win32 API 时 安装不成功 这些问题源于以下错误 dmake is not recognized as an internal or external
  • JWT 和 Web API(JwtAuthForWebAPI?) - 寻找示例

    我有一个以 Angular 为前端的 Web API 项目 我想使用 JWT 令牌来保护它 我已经进行了用户 通行证验证 所以我想我只需要实现 JWT 部分 我相信我已经选择了 JwtAuthForWebAPI 所以使用它的示例会很棒 我假
  • 如何在 Windows 7 上设置 SMTP 服务器 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 这个问题似乎不是关于主要由程序员使用的特定编程问题 软件算法或软件工具 help on topic 如果您认为该问题与主题相关另一个 St
  • 反射类型加载异常

    当我尝试构建 My WF 项目时 出现此错误 我发现删除System Activities Presentation解决了这个错误 如果我在运行时收到此错误 我可以进行调查LoaderExceptions找出根本问题 当我在编译时收到此错误
  • 在谷歌地图上显示/隐藏圆圈 javascript api

    尝试在用户将鼠标悬停在谷歌地图上时显示它 并在鼠标移开时隐藏它 此代码适用于在鼠标移开时隐藏圆圈 但不会在鼠标悬停时重新显示圆圈 我还尝试过circle setMap null 然后尝试circle setMap map 这就是我将地图作为
  • 初始化链接结构节点

    我应该做什么来分配内存空间pNode gt data 我想在其中放入一个字符 例如pNode gt data c 但它表明分段故障和内存地址pNode gt data is 0x1这是超出范围的 下面是我的代码 typedef struct
  • 本地代码的调试

    我有一个 C 服务 它正在调用最初用 VC6 编写的 C DLL 我正在尝试检查 DLL 中存在一个错误 在经历了一场试图让调试工作的噩梦之后 我最终将 dll 添加到包含 C 服务的 VS2005 解决方案中 并添加了必要的 CRT SE
  • 找不到记录器“xhtml2pdf”的处理程序

    我正在使用 xhtmltopdf pisa 从 html 模板生成 pdf 该代码运行良好 pdf pisa pisaDocument StringIO StringIO html encode UTF 8 dest result link
  • vue.js 获取 App.vue 中的路由名称

    我使用 vue cli 和 webpack 来构建 vue 项目 然后我安装了 vue meta info 来设置 seo 我想使用模板和路线名称设置页面标题 但是 我无法获取路由器中的变量 路由器 index js import Vue
  • 反转 Python 字符串而不省略开始和结束切片

    如何反转 Python 字符串而不省略开始和结束切片参数 word hello reversed word word 1 我知道这是可行的 但是如何通过指定开始和结束索引来获得结果 word hello reversed word word
  • float INFINITY 可以通过 NSCoder 存档,但不能取消存档

    我必须存档一个float有价值INFINITY 然后再将其解档 这是我的示例代码 归档对象 interface CodeInf NSObject