将 Swift 字典转换为 NSDictionary

2024-01-03

我创建了一个 Swift Dictionary 对象

var params = ["first_name": firstNameTextField.text,
              "last_name": lastNameTextField.text,
              "company": companyTextField.text,
              "email_address": emailTextField.text,
              "phone_number": phoneTextField.text]

接下来,我将 ObjC 框架连接到我的 Swift 应用程序。 里面有一个带有属性的对象

@property (nonatomic, retain) NSMutableDictionary *fields;

我正在尝试这样分配它

object.fields = params

并得到一个错误:

Cannot convert the expression's type '()' to type 'NSMutableDictionary!'

我也尝试这样做

var params = ["first_name": firstNameTextField.text,
              "last_name": lastNameTextField.text,
              "company": companyTextField.text,
              "email_address": emailTextField.text,
              "phone_number": pnoneTextField.text].mutableCopy() as NSMutableDictionary

object.fields = params

它编译得很好,但我遇到了运行时错误:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', 
reason: '*** -[__NSPlaceholderDictionary initWithObjects:forKeys:count:]: 
attempt to insert nil object from objects[0]'

我已经打印了所有字段,并且它们不为零:

println(firstNameTextField.text)
println(lastNameTextField.text)
println(companyTextField.text)
println(emailTextField.text)
println(pnoneTextField.text)

...

1
2
3
5
4

有任何想法吗?


Try parms.bridgeToObjectiveC()。不过,这可能会给你一个 NSDictionary 而不是 NSMutableDictionary。

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

将 Swift 字典转换为 NSDictionary 的相关文章

随机推荐

  • 关闭从 mysql.connector python 到 mysql 的池连接

    我正在使用 mysql connector 包并使用进行连接池MySQLConnectionPool班级 我有一个长时间运行的进程 运行此进程时 所有池连接在不规则的时间段模式中保持空闲状态 源代码中有 remove connections
  • 我可以对我自己的非指针类型使用“空指针优化”吗?

    当你有一个Option lt T gt 编译器知道NULL永远不是一个可能的值 T and 编码None变体为NULL instead https stackoverflow com q 16504643 155423 这可以节省空间 us
  • 如何按列累积numpy数组中的值?

    我如何使用numpy累加器 http docs scipy org doc numpy dev reference generated numpy ufunc accumulate html numpy ufunc accumulate a
  • 身份和自定义表之间的多对多关系。 EF7 - 代码优先

    如何在 Identity 3 0 中的 AspNetRoles 和我的自定义表之间建立多对多关系 我想要简单的 3 个表 其中包含 PermissionId 和 RoleId 例如 AspNetUsersRole 我有这样的事情 publi
  • 如何从rails控制台获取详细的错误消息?

    假设我希望从控制台创建一个用户 其中包含电子邮件already存在 如果我做User create 由于模型验证 在这种情况下的独特性 create失败 rails 控制台中的输出将显示 rollback transaction 用户未保存
  • :has 与 :matches - 选择器级别 4

    只是想知道CSS 选择器4 伪选择器之间有什么区别 has and matches 规格http dev w3 org csswg selectors 4 overview http dev w3 org csswg selectors 4
  • 如何从 Jenkins 将节点应用程序部署到远程主机?

    这是节点应用程序目录根目录中的 Jenkins 文件 pipeline agent any triggers pollSCM stages stage deploy steps sh scp 我将 Jenkins 配置为连接到远程 gitl
  • 显示图像时出现奇怪的 matplotlib 行为

    当范围 0 255 内的常规 RGB 图像转换为 float 然后由 matplotlib 显示时 图像将显示为负数 如果它被转换为 uint8 它会正确显示 当然 这给我弄清楚发生了什么造成了一些麻烦 因为我不小心将其中一张图像投射为浮动
  • gpiod - 在设备树中使用标签

    我想用libgpiod通过自定义板上的用户空间控制一些 GPIO 我有一个 i MX6UL 处理器 它有数百个引脚 我将只使用其中 8 个 作为 GPIO 我读到了关于libgpiod因为它正在取代旧的 sysfs API 我很高兴您可以为
  • Summernote createRange 与 HTML

    我的 Summernote 编辑器中的某些文本包含 HTML 我想要让用户选择的文本与编辑器中的文本完全相同 到目前为止我看到的所有答案都告诉我使用这个 summernote summernote createRange toString
  • .NET MVC 4 WebAPI POST 不起作用

    核心问题 GET 有效 POST 无效 我是 WebAPI 的新手 所以我可能做了一些愚蠢的事情 但我在网上查了很多资料 试图找出为什么这不起作用 相当简单的 WebAPI C 应用程序 我试图将其简化为非常简单的路线 config Rou
  • X11 窗口调整大小时卡顿

    我正在 X11 中创建一个 openGL 窗口并使用glxswapbuffers用于双缓冲 问题是 渲染看起来不错 但在调整大小时 openGL 内容会跳来跳去 窗口边框会出现卡顿现象 我尝试过滤ConfigureNotify事件 延迟它们
  • Pandas `isin` 函数的更快替代方案

    我有一个非常大的数据框df看起来像 ID Value1 Value2 1345 3 2 332 1355 2 2 32 2346 1 0 11 3456 8 9 322 我有一个包含 ID 子集的列表ID list 我需要有一个子集df为了
  • ViewData 是 ASP.Net 5(核心)中 ViewBag 的新标准吗?

    我注意到 在我从 Microsoft 看到的 ASP Net 5 核心 的所有示例和教程中 VS 2015 中的默认 Web 应用程序模板使用 ViewData XXX 代替 ViewBag XXX 这是现在推荐的从控制器传递数据的方法吗
  • 角度附加组件到各个选项卡

    我正在尝试使用角度材料将组件 动态创建 附加到相应的选项卡 viewChild但只有当我单击第二个选项卡中的按钮时 它才会转到第一个选项卡 Here is Stackblitz 角度附加组件到各自的选项卡 https stackblitz
  • 在 Objective-C 中,如何从类别访问私有属性

    我想从类的类别中访问该类的私有属性 但要访问私有财产 我必须在类别中重新声明相同的私有财产 如果我不重新声明 我会收到编译错误 Property
  • 使用 Commons Multiparthttpservlet 解析器上传文件

    我在 Spring Boot 中做了一个服务 在 Reactjs 中做了前端 但我的服务没有提供任何东西 没有结果 我正在上传带有文件图像或音频的表单数据 但我的休息服务没有收到任何文件 我的服务等级 CrossOrigin Request
  • C#:传递通用对象

    我想要一个通用的打印功能 PrintGeneric T 在以下情况下 我缺少什么 一如既往 感谢您的帮助 见解 public interface ITest public class MyClass1 ITest public string
  • Visual Studio - 从元数据查看类型

    我记得在以前安装的 Visual Studio 中 当我对当前解决方案中不存在的类型使用 转到定义 选项时 它会显示一个选项卡 显示从元数据反映的类型 我当前的安装直接进入对象浏览器 我更喜欢看到元数据版本 有没有什么方法可以选择默认行为
  • 将 Swift 字典转换为 NSDictionary

    我创建了一个 Swift Dictionary 对象 var params first name firstNameTextField text last name lastNameTextField text company compan