Swift 中的 Something.self 与 self.something

2024-02-27

我明白那个

self.something

这是该类的成员值。 但什么是

something.self

考虑类似的代码

JSONDecoder().decode(what, from: myJSONData)

我有什么就去哪里what?我们必须告诉解码器期望解码什么类型的东西。基本上,what is the 类型名称— 符合 Decodable 的类、结构或枚举的名称。

但是如何说出类型的名称呢?假设您希望解码的类型是 String。那你在这里说什么?

JSONDecoder().decode(String, from: myJSONData) // error

不,你不能这样突然说出类型的名称。您可以这样做:

JSONDecoder().decode(String.self, from: myJSONData)

当你说的时候你真正传递的是什么String.self is the metatype对于字符串。这个示例正是它的用途,即当您需要传递类型作为参数时。

该方法的声明通过使用来表明这一点.Type:

func decode<T>(_ type: T.Type, from data: Data) throws -> T where T : Decodable

表达方式T.Type告诉您调用此方法时传递的内容应该是Something.self.

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

Swift 中的 Something.self 与 self.something 的相关文章

  • 如何在 Swift Playgrounds 中获得弹出对话框

    我想知道如何在 Swift 中弹出一个对话框游乐场 是的 必须在 Playgrounds 中 我尝试了以下代码 直接来自 AppleDevs 站点 然而 无论我如何尝试 self tag always抛出错误 谁能帮我这个 import U
  • 来自索引范围 Swift 的新数组

    我怎样才能做这样的事情 从数组中取出前 n 个元素 newNumbers numbers 0 n 目前出现以下错误 error could not find an overload for subscript that accepts th
  • iOS 13 检查 CLLocationManager 的临时授权状态

    根据 WWDC 视频 https developer apple com videos play wwdc2019 705 https developer apple com videos play wwdc2019 705 当你要求 Al
  • UITesting、XCTest 当前 ViewController 类

    简单的问题 我有一个按钮可以执行到下一个视图控制器的操作 我想写 UI XCTest 来告诉我它是否打开了我想要的视图控制器 UI 测试框架无法访问您的应用程序代码 这使得无法对实例进行类断言 你不能够directly告诉屏幕上的控制器的类
  • 如何使用 SwiftUI 获取多个屏幕上的键盘高度并移动按钮

    以下代码获取键盘显示时的键盘高度 并将按钮移动键盘高度 在转换源 ContentView 和转换目标 SecibdContentView 处以相同的方式执行此移动 但按钮在转换目标处不移动 如何使按钮在多个屏幕上移动相同 import Sw
  • iOS Swift 在后台下载大量小文件

    在我的应用程序中 我需要下载具有以下要求的文件 下载大量 例如 3000 个 小 PNG 文件 例如 5KB 逐个 如果应用程序在后台继续下载 如果图像下载失败 通常是因为互联网连接丢失 请等待 X 秒然后重试 如果失败Y次 则认为下载失败
  • 带约束的嵌套集合视图的意外行为 (Swift 4)

    我的表格视图中有一个单元格 其中包含水平分页集合视图 该集合视图的每个页面内都有一个垂直集合视图 为了避免 滚动滚动 问题 我在垂直集合视图中禁用了垂直滚动 垂直集合视图的单元格计数不是静态的 可以是任意数字 因此 这会产生一个问题 集合视
  • xcode 9.0.1 / swift 4,没有使用 Objective-C 选择器 'onClick:forEvent:' 声明的方法 [重复]

    这个问题在这里已经有答案了 I use swift 4为了构建我的 UI 我创建了一个UIButton并想为其添加一个目标 但编译器会抛出警告 No method declared with Objective C selector onC
  • 如何观察UserDefaults的变化?

    我有一个 ObservedObject在我看来 struct HomeView View ObservedObject var station Station var body some View Text self station sta
  • 如何去掉 UIWebView 上的状态栏背景?

    从 iOS 11 开始 当UIWebView全屏时 状态栏上会出现与屏幕颜色相同的假背景UIWebView背景 有人知道如何摆脱它吗 甚至添加IUWebView到故事板并使其全屏将使状态栏背景出现 我一直在尝试编辑 UIWebView 的大
  • 为 Swift 对象/属性设置观察者

    我一直在寻找一种在连接到 Mac 的显示器数量发生变化时触发方法的方法 我知道我可以获得 NSScreen screens count 的值 但我需要找到一种方法来在该值发生变化时创建通知或其他内容 或者指示所连接的显示器数量发生变化的其他
  • Swift 3 中的 JSON 解析

    有没有人能够找到一种在 Swift 3 中解析 JSON 文件的方法 我已经能够返回数据 但在将数据分解为特定字段时我没有成功 我会发布示例代码 但我已经尝试了很多不同的方法但没有成功 并且没有保存任何代码 我想要解析的基本格式是这样的 提
  • 设置/覆盖 UICollectionView 中单元格之间的填充

    我有一个 UICollectionView 但在获取单元格之间的填充时遇到了问题 理论上 我应该能够将屏幕除以 4 并且我可以获得包含 4 个图像的单元格大小 完美地占据屏幕宽度 但是 它选择不这样做 相反 它会创建 3 个具有巨大填充的图
  • Swift:如何减少 didupdatelocations 调用

    我想出了一些代码来打印我所在位置的地址和邮政编码 这是在 didupdatelocation 函数中完成的 我遇到的唯一问题是 didupdatelocation 函数每秒都会更新该地址 因为这电池效率非常低 所以我一直在寻找使用间隔的方法
  • 在 SwiftUI 中使用分段式选取器在两个页面之间滑动

    我有一个Picker with pickerStyle SegmentedPickerStyle 使其成为分段控件 我想让页面在之间平滑滑动 而不是使用条件语句替换视图 这是我迄今为止所做的 gif 这是到目前为止的代码 由if 而不是在不
  • 当 UITextField 已满或空时显示警报 Swift

    下面的代码中 如果 userNameTF 或 passwordTF 已满或为空 则会显示警报 IBAction func LoginBtn sender AnyObject let userName userNameTF text let
  • 所需框架与静态库

    构建现代框架 https developer apple com videos play wwdc2014 416 says 每个应用程序都有自己的自定义框架副本 https stackoverflow com a 15262463 242
  • 为什么这个谓词格式会变成 '= nil'

    有人建议这个线程 https stackoverflow com questions 40686005 nspredicate crash after swift 3 migration与我的问题完全相同 但是 我的应用程序没有崩溃 并且我
  • 在 Swift 中使用 CommonCrypto 解密时出现问题

    我在一家Swift only加密 解密Extension for String and NSData 并且 crypt 部分的工作基于 Zaph 在链接问题中提供的答案 在 Swift 中使用 CCCrypt CommonCrypt 时出现
  • Swift C 回调 - Swift 类指针的 takeUnretainedValue 或 takeRetainedValue

    我有一些UIView or UITableViewCell 里面我有 C 回调 例如 CCallback bridge self observer data gt Void in let mySelf Unmanaged

随机推荐

  • CMake 行为:使用 Visual Studio 的自定义配置类型需要多次运行 cmake 才能正确显示。这是故意的吗?

    Context 我正在将一个项目从普通 Makefile 迁移到 CMake 以添加对多个编译器 gfortran ifort 和操作系统 Windows Linux 的支持 当我完成整个事情时 我正在尝试简化 CMake 行为并为用户提供
  • 在 data.table 中插入一行

    如果我有一个数据框 set seed 12345 df data frame a rnorm 5 b rnorm 5 我可以通过例如添加一行 df 6 c 5 6 如果我现在在 data table 中执行相同的操作 library dat
  • Google Developers Console API 页面未加载

    在我的 Google 开发者控制台中 我无法打开 API 页面 它显示无法加载错误 并且如果我通过像 https cloud google com compute docs autoscaler loadbalancingsetup htt
  • grep 是如何工作的?

    我想了解如何grep works 当我说grep hello does grep获取 2 个参数 1 要搜索的字符串 即 hello 和 2 路径 或者shell是否转换 变成某事grep可以理解 哪里可以得到源代码grep 我遇到了这个G
  • 在 numpy 数组上“绘制”随机菱形(菱形)(测试哈里斯角点检测)

    我正在尝试为 harris corner detector 函数实现创建一个随机测试 非常普遍且轻微错误 一个在图像中查找角点的函数 在测试中 我想在二进制 numpy 矩阵中创建随机简单形状 很容易知道它们角的坐标 例如矩形 三角形 菱形
  • 交换行 csr_matrix scipy

    我在 scipy 中有一个 256x256 csr matrix 并且有一个我想要应用的新行顺序的列表 我试过这个 def HblockDiag z Hz H z H z returns a 256x256 csr matrix Hz in
  • Jinja,模板渲染后获取一行源代码

    是否可以获取渲染模板的每一行的源代码行 例如 如果我们有如下所示的模板 some expr if true other expr endif 因此 模板渲染后会生成以下文本 some expr other expr 我想获取 some ex
  • 将模拟注入 Spring MockMvc WebApplicationContext

    我正在努力使用 Spring boot 测试 通过 JUnit4 和 Spring MockMvc REST 服务适配器 适配器只是将向其发出的请求传递给另一个 REST 服务 使用自定义RestTemplate 并将附加数据附加到响应中
  • 迭代 Makefile 中的目录列表

    我想在多个目录中执行任务 但到目前为止还没有找到 类似 makefile 的解决方案 我知道这是一个经常被问到的问题 并且我知道如何解决子 makfiles 等问题 但我正在寻找更简单的东西 而不是做 copy cd module1 mkd
  • 如果您之前将双精度值初始化为零,则将双精度值与零进行比较是否正确?

    我了解到比较双重使用 这不是一个明智的做法 但是我想知道检查双精度是否已初始化是否危险 例如 知道变量 doubleVar 如果已初始化则不能为零 那么这样做安全吗 Foo Foo doubleVar 0 0 of type double
  • 带有 numpy/ctypes 的环形缓冲区

    我正在开发一个客户端 它将通过 TCP 接收 EEG 数据并将其写入环形缓冲区 我认为将缓冲区作为 ctypes 或 numpy 数组非常方便 因为可以为此类缓冲区的任何位置创建一个 numpy 视图 并读取 写入 处理数据 而无需任何复制
  • 在 Ubuntu 上静态编译 Postgresql

    如何在 Ubuntu 12 04 上从源代码静态编译 Postgres 我已经安装了必要的开发依赖项 包括libreadline dev zlib1g dev and libssl dev 并且可以正常构建 但在尝试静态编译时失败 失败的命
  • 出现类似需要结构类型的错误,但在 Spark scala 中获取简单结构类型的字符串

    这是我的架构 root DataPartition string nullable true TimeStamp string nullable true PeriodId long nullable true FinancialAsRep
  • SQL - varchar 与 int 的性能

    我有一张桌子 上面有一个primary key with varchar数据类型 还有另一张桌子foreign key as varchar数据类型 我正在做一个join使用这对语句varchar数据类型 虽然我处理的行数很少 比如说数百行
  • 阻止滚动条向左推送内容

    我正在设计一个网站 有多个页面使用相同的模板 有些页面比浏览器窗口的高度长 其他页面则不然 较长的内容被向左推了大约 10 像素 这听起来可能不多 但在切换页面时会很明显 因为所有内容都会横向跳跃 我可以做一些 CSS 事情来使每个页面上的
  • Android:应用程序在登录发布模式后启动时崩溃

    目前 我在登录发布模式后启动时面临应用程序崩溃的问题 但在调试模式下它工作得很好 我现在无法弄清楚问题所在 尽管我做了研究并不断寻找解决方案 但我仍然无法使其发挥作用 当应用程序崩溃时 它不会显示在我的应用程序 logcat 中 而是显示在
  • 如何使用 vim 将文件转换为 utf8?

    我有一个文本文件 有人告诉我将其设置为 UTF8 我怎样才能用 Vim 做到这一点 如果您正在编辑编码为 latin1 的文件 您会发现该缓冲区的 fileencoding 设置为 latin1 因此 您需要在保存文件之前手动设置文件编码
  • PHPUnit selenium 不支持 sendKeys?

    我正在写测试sendKeysSelenium IDE 中的命令很好 但是当我更改为 PHPUnit Selenium 时 我收到一个错误 Method sendKeys not defined 所以我想知道的是PHPUnit Seleniu
  • 如何修复“致命错误:接近堆限制的无效标记压缩分配失败 - JavaScript 堆内存不足”错误

    我正在尝试将reactjs应用程序部署到heroku 编译资产时 构建失败并产生以下错误 gt Ruby app detected gt Compiling Ruby Rails gt Using Ruby version ruby 2 5
  • Swift 中的 Something.self 与 self.something

    我明白那个 self something 这是该类的成员值 但什么是 something self 考虑类似的代码 JSONDecoder decode what from myJSONData 我有什么就去哪里what 我们必须告诉解码器