Swift:对于 Double 值,“此类不符合键值编码...”

2023-12-24

我有一个场景,其中 Swift 中有一个简单的数据对象,包含多个属性变量。它们是混合的String? and Double?值类型。我正在尝试使用检索每个属性的值valueForKey。我的代码看起来像这样......

let myDataObj = ...
let stringKeyName = "myStringProperty"
let doubleKeyName = "myDoubleProperty"

guard let stringPropertyValue = myDataObj.valueForKey(stringKeyName) else {
    return
}
guard let doublePropertyValue = myDataObj.valueForKey(doubleKeyName) else {
    return
}

第一个调用得到stringPropertyValue工作正常,我能够按预期检索该值。然而,第二次调用检索doublePropertyValue失败,但出现异常,“this class is not key value coding-compliant for the key myDoubleProperty.'"

我知道属性名称是正确的,而且我也知道为此属性设置了值。为什么会这样valueForKey致力于String对象,但不是Double物体?


正确的,您只能对可以用 Objective-C 表示的类型进行键值编码。不幸的是,那些在 Objective-C 中表示为原始数据类型的类型(例如 Swift 的Int and Double表示为NSInteger and double在 Objective-C 中,如果它们是可选的,则不能这样表示。在 Objective-C 中,可选值仅对类类型有意义,对基本数据类型没有意义。

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

Swift:对于 Double 值,“此类不符合键值编码...” 的相关文章

随机推荐

  • 使express.js 中单个用户的所有会话失效

    出于安全原因 我们希望能够使用户的所有活动会话无效 例如 如果他们更改密码 或者只是希望能够强制注销其他会话 我们使用 Node js Express express sessions 和 Redis 会话存储 在我们的应用程序中 我们有
  • 除非修改源代码,否则 Three.js 骨骼动画无法工作

    使用 Three js r68 我需要对源代码进行轻微修改才能使我的动画正常工作 未经修改 每种类型的模型中只有一个是动画的 每种类型的模型都有多个生成 这是第 29407 行的修改后的源代码 从 29389 开始发布的代码 THREE A
  • 使用 2.x API 的 Android 应用程序也可以在 1.x 上运行

    我正在开发一个 Android 应用程序 我想在其中使用多点触控 然而 我不想完全忽略那些仍在运行 1 x 操作系统的手机 如何对应用程序进行编程 以便可以使用 2 x 多点触控 API 或与此相关的任何其他更高级别的 API 并且仍然允许
  • d3js 中矩形的大小基于值的总和而不是项目的计数

    我正在开发 d3js 可视化 我想根据大小显示组和子组 除了矩形的大小之外 大部分功能都可以工作 如果您在加载时看到所有四个盒子尺寸都相同 因为它们都有相同的编号 补助金计划 我想根据 grant award 更改这些矩形的大小 这是我在以
  • 在Sage中使用Python的pickle会导致内存使用率很高

    我正在使用基于 Python 的 Sage Mathematics 软件来创建一个很长的向量列表 该列表包含大约 100 000 000 个元素 sys getsizeof 告诉我它的大小略小于 1GB 我将这个列表放入一个文件中 这已经花
  • SharePoint CSOM,检索网站集。限量300个?

    我正在尝试从 SharePoint Online 域检索网站集列表 我正在使用 C 和客户端对象模型 以下代码仅返回 300 个网站集 var tenant new Tenant ctx spp tenant GetSiteProperti
  • 嵌入式 Jetty - Spring MVC - 视图解析器 - 无 XML - HTTP 错误:404

    我正在尝试使用嵌入式 Jetty 设置一个简单的 Spring MVC 服务器 我已经设置了服务器 启用了 spring 并为 jsp 文件配置了视图解析器 控制器给我 404 并显示以下消息 Problem accessing jsp t
  • ORA 删除/截断

    我正在使用 SQL 加载器将数据加载到数据库中 在插入数据之前 我需要删除表中的现有数据 options skip 1 load 250000 errors 0 ROWS 30000 BINDSIZE 10485760 load data
  • 使用android的加速度计移动图像

    我已阅读有关访问手机加速度计 加速度和方向 值的文章 教程 我正在尝试构建一个简单的应用程序 我可以使用这些值移动球图像 这是我的代码 import android app Activity import android content C
  • 如何以编程方式向 Android 手机的扬声器发出短促的蜂鸣声

    为了在扬声器上接收唯一的短蜂鸣声 我想直接向扬声器发送单个比特 与 LED 闪烁类似 是否有可能在没有任何媒体播放器的情况下发出短促的蜂鸣声 我建议您使用ToneGenerator https developer android com r
  • Numpy:如何将矩阵随机拆分/选择为 n 个不同的矩阵

    我有一个形状为 4601 58 的 numpy 矩阵 我想根据行数按 60 20 20 分割随机分割矩阵 这是我需要的机器学习任务 有没有随机选择行的 numpy 函数 你可以使用 numpy random shuffle import n
  • 如何使用 UIPanGestureRecognizer 捕获正在平移的方向?

    好吧 我一直在寻找几乎所有捕捉多点触摸手势的选项 最后我又回到了 UIPanGestureRecognizer 我想要的功能其实很简单 我设置了一个两指平移手势 并且我希望能够根据我移动的像素数来随机浏览一些图像 我已经解决了所有问题 但我
  • Python中的多元正态密度?

    是否有任何 python 包可以有效计算 PDF 概率密度函数 多元正态分布 https en wikipedia org wiki Multivariate normal distribution 它似乎没有包含在 Numpy Scipy
  • 在 pyparsing 期间更改字符串

    在我的 pyparsing 代码中 我有以下表达式 exp1 Literal foo Suppress Literal Word alphanums exp2 Literal foo Suppress Literal Word alphan
  • 如何在 php 中锁定 mysql 表

    如何在 php 中锁定 mysql 表 我目前有这个代码 db gt query LOCK TABLES tbl othercharge WRITE for x 0 x lt 500 x id get max db gt query INS
  • 选择 A 列相同但 B 列不同的行

    ID Zip Room 317 94087 S105 318 94087 L603 1739 94404 1801 L603 1823 94401 2129 L603 1824 94401 2129 L603 2135 94404 1801
  • 自动化测试游戏

    Question 您将如何向游戏添加自动化测试 我相信您可以对游戏引擎的许多功能 网络 对象创建 内存管理等 进行单元测试 但是是否可以自动测试实际游戏本身 我不是在谈论游戏玩法元素 比如神族会在地图 X 中击败虫族 而是在谈论游戏和引擎之
  • Moodle 有 API 吗? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我想为 Moodle 创建一个定制的前端 有谁知道我可以从哪里获得API 或任何其他帮助 编辑 我已经
  • 在 Mgmt Studio 中修改数据库后重新导入/更新 SQL Server 数据库项目

    我的团队正在他们的解决方案中使用 NET 2008 DB 项目 因此我们有一些方法可以在机器之间以及通过开发来保持架构并保持一致 我更改数据库和跟踪所述架构的首选方法是通过 SQL Server Mangement Studio 基本上 我
  • Swift:对于 Double 值,“此类不符合键值编码...”

    我有一个场景 其中 Swift 中有一个简单的数据对象 包含多个属性变量 它们是混合的String and Double 值类型 我正在尝试使用检索每个属性的值valueForKey 我的代码看起来像这样 let myDataObj let