类型“[String,AnyObject?]”不符合协议 AnyObject?:为什么?

2024-01-16

我试图理解为什么会出现编译错误:类型“[String, AnyObject?]”不符合 AnyObject 协议?

var cars: [String: AnyObject?] = [ "model": "Ferrari"]
var JSON: [String: AnyObject?] = [ "cars": cars ]  // <-- error

这好像是cars不是 AnyObject 吗?我不明白。

感谢您的帮助!


AnyObject必须是一个类,但是Dictionary是一个结构体。

Swift 编程语言:类型转换 https://developer.apple.com/library/prerelease/mac/documentation/Swift/Conceptual/Swift_Programming_Language/TypeCasting.html

AnyObject 可以表示任何类类型的实例。

Swift 编程语言:类和结构 https://developer.apple.com/library/prerelease/mac/documentation/Swift/Conceptual/Swift_Programming_Language/ClassesAndStructures.html#//apple_ref/doc/uid/TP40014097-CH13-XID_135

Swift 的 String、Array 和 Dictionary 类型都是作为结构体实现的。


您可以使用Any?以此目的。

var cars: [String: Any?] = [ "model": "Ferrari"]
var JSON: [String: Any?] = [ "cars": cars ]

仔细观察之后,发现有一个微妙的问题导致了这个问题的发生。

这是一个有效的示例:

var cars: [String: AnyObject] = [ "model": "Ferrari"]
var JSON: [String: AnyObject] = [ "cars": cars ]

它有效是因为cars被强制(隐式投射)自[String: AnyObject]到兼容的对象NSDictionary ([AnyHashable: AnyObject]). This NSDictionary然后将兼容对象转换为AnyObject。所以,魔法。

[String: AnyObject?]不能以这种方式铸造,因为它不是NSDictionary兼容,所以强制失败。

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

类型“[String,AnyObject?]”不符合协议 AnyObject?:为什么? 的相关文章

  • 当我编写 FirebaseApp.configure() 时,iOS 应用程序崩溃

    我有一个 ios 应用程序 可以正常登录和 Facebook 登录 今天我集成了 firebase 当我在应用程序委托中编写 FirebaseApp configure 时 我的应用程序崩溃了 并且此函数突出显示错误代码 在展开可选值时意外
  • 替换 Python 列表/字典中的值?

    好的 我正在尝试过滤传递给我的列表 字典并稍微 清理 它 因为其中有某些值我需要删除 所以 如果它看起来像这样 records key1 AAA key2 BBB key3 CCC key4 AAA 我如何快速轻松地运行所有内容并将 AAA
  • 优化 - 步进可能表现奇怪:iOS/Unity

    我正在尝试将 Unity 集成到 iOS 应用程序中 我已经遵循了这个教程http www agnosticdev com blog entry swift integrating unity and vuforia ios swift p
  • 类型错误:“生成器”对象没有属性“__getitem__”

    我编写了一个应该返回字典的生成函数 但是当我尝试打印字段时出现以下错误 print row2 SearchDate TypeError generator object has no attribute getitem 这是我的代码 fro
  • 关于将 Objective C 代码添加到 swift 动态框架的澄清

    我有一个 swift 动态框架 当前正在链接到另一个用 Objective C 编写的框架 这可以工作 但很烦人 因为 Objective C 框架实际上只有 2 个文件 我想知道是否有办法将其带入我的 swift框架 如果这是我会使用的应
  • 快速以编程方式打开 viewController

    我想通过代码在按钮上打开新的 UIViewController 我已经在故事板中制作了控制器 只想链接它 而且我不想使用 XIB 接口或 nibName 要打开新视图控制器 您需要在按钮单击事件中写入以下行 self performSegu
  • 如何在 Swift Joint 中创建自定义链?

    我正在尝试创建一个LocationManager组合的包装 我有一个发布者和一些触发发布者的函数 但是 我想将它们与自定义命令组合在一起 这是我到目前为止得到的 available OSX 10 15 iOS 13 tvOS 13 watc
  • 确定相关词的编程方式?

    使用网络服务或软件库 我希望能够识别与词根相关的单词 例如 座位 和 安全带 共享词根 座位 但 西雅图 不会被视为匹配 简单的字符串比较对于这类事情似乎是不可行的 除了定义我自己的字典之外 是否有任何库或 Web 服务不仅可以返回单词定义
  • 如何从TableViewCell上的自定义CollectionViewCell推送VC?

    我有一个tableView和细胞 在细胞上我有一个collectionView并在其上显示一些内容 我想发送一个有关选择的链接indexPath 我想从自定义中推送 呈现我的视图CollectionViewCell这是在TableViewC
  • 将带有 **kwargs 错误的值线程化并传递给 TypeError

    我对 Python 还很陌生 并且正在通过这篇文章研究如何使用线程来处理某些代码 Python 使用线程或队列迭代调用函数的 for 循环 https stackoverflow com questions 12868956 python
  • R中有字典功能吗

    有没有办法在 R 中创建一个 字典 使其具有对 一些效果 x dictionary c Hi Why water c 1 5 4 x Why 5 我问这个是因为我实际上正在寻找两个分类变量函数 所以如果 x dictionary c a b
  • Swift 语言中的 #ifdef 替换

    在 C C Objective C 中 您可以使用编译器预处理器定义宏 此外 您可以使用编译器预处理器包含 排除代码的某些部分 ifdef DEBUG Debug only code endif Swift 中有类似的解决方案吗 是的 你可
  • Swift Siesta 访问响应原始数据

    我的 API 中有一个返回 PDF 文件内容的方法 如何在成功回调中获取响应的原始数据 所有午睡响应均以原始数据开始 以基础类型的形式Data 然后运行变压器管道 http bustoutsolutions github io siesta
  • Swift 中计算只读属性与函数

    在 Swift WWDC 简介会话中 只读属性description被证明 class Vehicle var numberOfWheels 0 var description String return numberOfWheels wh
  • 如何使用 pyinstaller 包含文件?

    我也使用 tkinter 使用 python 3 7 编写了一个程序 由于我使用的是外部图片 因此当我将所有内容编译为一个 exe 时 我需要包含它们 我试过做 add data bg png files 但我仍然收到此错误 tkinter
  • Swift 中通过可选绑定进行安全(边界检查)数组查找?

    如果我在 Swift 中有一个数组 并尝试访问超出范围的索引 则会出现一个不足为奇的运行时错误 var str Apple Banana Coconut str 0 Apple str 3 EXC BAD INSTRUCTION 但是 我会
  • 如何让“循环”泛型在 Java 中工作?

    我在编译以下涉及一些泛型的代码时遇到错误 public abstract class State
  • 从 URL 解析 JSON 最终出现错误 - Swift 5

    我正在尝试用 swift 编写一个函数 从 URL JSON 获取数据 并将其分配给 swift 中的变量 这是函数 func getBikeData guard let url URL string https api citybik e
  • 如何循环遍历字典列表并打印特定键的值?

    我是 Python 新手 有一个问题 我知道这是一个非常简单的问题 运行Python 3 4 我有一个需要迭代并提取特定信息的列表 以下是列表 称为部分 的示例 已截断 数千个项目 state DEAD id phwl type name
  • 使用 urllib 编码时保持 url 参数有序

    我正在尝试用 python 模拟 get 请求 我有一个参数字典 并使用 urllib urlencode 对它们进行 urlencode 我注意到虽然字典的形式是 k1 v1 k2 v2 k3 v3 urlencoding 后参数的顺序切

随机推荐

  • 从 EPS 中提取图像数据

    我有一个封装的 PostScript http en wikipedia org wiki Encapsulated PostScript文件似乎只包装了一个图像文件 有没有工具可以从中提取图像数据 convert 将使用ghostscri
  • 发送标头后重定向用户

    据我所知 只要数据已发送到浏览器 那么标头就无法修改 有什么方法 使用 PHP 可以执行重定向以将用户带到另一个页面 显然不使用标头 如果是这样 您能给我指出一些文档吗 决定编写我自己的 php 函数来实现 javascript 重定向 请
  • 是否可以在 WPF 中使用 ReactiveUI 绑定仅通过 INotifyDataErrorInfo 验证用户输入?

    我们在 Net Core WPF 应用程序中使用 ReactiveUI WPF 11 0 1 我们正在考虑将所有基于 XAML 的绑定替换为基于 ReactiveUI 的绑定 域类型有一个 ViewModel 实现了 INotifyProp
  • Ruby on Rails 的隐藏功能 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • UIImageWriteToSavedPhotosAlbum() 不保存裁剪后的图像

    我正在尝试将裁剪后的图像保存到相机胶卷中 我需要以编程方式完成 我不能让用户编辑它 这是我的 仍然很基本 剪切和保存代码 void cutAndSaveImage UIImage rawImage CIImage workingImage
  • JavaFX 中的磨砂玻璃效果?

    我正在制作一个 iOS 7 主题的 JavaFX 2 FXML 项目 我想知道如何使 Rectangle 对象具有类似 iOS7 的磨砂玻璃效果 我还希望它有一个小阴影 这很棘手 因为您可能能够看到半透明物体后面的阴影 我只是希望它出现在边
  • Centos 7 - openjdk8 的 jfx 库在哪里?

    我有centos 7 1 我安装了openjdk8和openjdk devel8 但是 当我尝试在 netbeans 中编译我的 jfx 应用程序时 我得到包 javafx 不存在 经过一番调查 我发现jdk中没有jfxrt jar 除了
  • 在 Archlinux 上设置 Haskell 的建议方法是什么?

    我想要一些关于让 Haskell 在 Archlinux 上工作的 最佳 方法的指导 By work我的意思是所有 就ghci命令行工具 安装我没有的软件包 例如vector space http hackage haskell org p
  • 我到底如何在rails 3中安装restful身份验证插件?

    我对 Rails 3 上的这个 Restful 身份验证插件感到非常困惑 我尝试使用以下命令安装该插件 它告诉我它已经安装了 然后我尝试使用 force重新安装这个插件它告诉我找不到该插件 所以如果插件已经安装为什么我会收到错误Could
  • 使用 Parsec 在 Haskell 中编写小型解析器时出现问题

    我正在尝试使用以下代码为小语言编写解析器 import Text ParserCombinators Parsec import Text Parsec Token data Exp Atom String Op String Exp in
  • 使用 CMake 为 Visual Studio 2012 编译 SFML

    在开始提问之前 我只想澄清一下 我希望 SFML 能够静态链接到 runetime 因为我想静态链接 mvsc dll 这样就没有人需要安装它们或依赖它们 我成功地从网站上完成了这项工作 但它也有同样的问题 到问题了 我从 github 下
  • 使用 getRange() 时如何跳过一列 - Google Apps 脚本

    我似乎无法弄清楚如何将此脚本放在跳过列中L 我尝试了许多不同的品种 但都导致错误 希望有更多经验的人能够指点迷津 我需要I K and M O没有L sheet1 getRange I1 O sheet1 getLastRow getVal
  • 如何提高反序列化速度?

    使用 BinaryFormatter 进行序列化 反序列化 生成的序列化文件大小约为 80MB 反序列化需要几分钟 我该如何改进这一点 这是反序列化代码 public static Universe DeserializeFromFile
  • 在Powershell脚本中传递Jenkins环境变量

    我想在 power shell 脚本中使用 jenkins 环境变量 这里 destination 在 powershell 脚本中为 null 无法识别我在做什么错误 请帮助 bin groovy pipeline agent label
  • 以 Promise.all 为条件 [重复]

    这个问题在这里已经有答案了 我知道这个答案 https stackoverflow com a 31414472 4640499下面的代码是基于它的 它正在工作 但我对某些事情不满意 如果我想进行一些条件检查并基于它解决怎么办 我已经对我想
  • git 与 xcode 快照

    我正在通过 itunesU 视频学习 iOS 编程 并且一直在使用 xcode 我在 xcode 中发现了创建快照的功能 到目前为止 我已经用它来为我的项目在每个主要里程碑拍摄快照 然后我来到关于使用 git 进行版本控制的章节 并按照他们
  • 如何获取scrapy失败的URL?

    我是 scrapy 的新手 这是我所知道的令人惊叹的爬虫框架 在我的项目中 我发送了超过 90 000 个请求 但其中有一些失败了 我将日志级别设置为INFO 我只能看到一些统计信息 但看不到详细信息 2012 12 05 21 03 04
  • 如何在Android国际象棋游戏中制作动画

    我正在为 Android 开发国际象棋游戏 androidchess appspot com http androidchess appspot com 如果我想添加动画 我应该使用扩展Canvas的自定义View 我现在这样做 还是扩展S
  • 不小心创造了病毒?

    我经常看到这种情况发生 我用 Delphi 编写一个应用程序 当我编译它时 病毒扫描程序告诉我我已经创建了一个病毒 然后立即再次删除了可执行文件 这很烦人 但通过完全重建 首先删除 dcu 文件 有时只需等待 即可轻松修复 据我所知 Del
  • 类型“[String,AnyObject?]”不符合协议 AnyObject?:为什么?

    我试图理解为什么会出现编译错误 类型 String AnyObject 不符合 AnyObject 协议 var cars String AnyObject model Ferrari var JSON String AnyObject c