无法使用类型为“(Range)”的参数列表调用类型“Range”的初始值设定项

2024-03-13

更新到 Xcode 10 beta(显然是 Swift 4.1.50 附带的)后,我看到以下错误,我不知道如何修复:

无法使用类型为“(Range)”的参数列表调用类型“Range”的初始值设定项

在以下函数中Range<Index>(start..<self.endIndex)(第 3 行):

func index(of aString: String, startingFrom position: Int? = 0) -> String.Index? {
    let start: String.Index = self.index(self.startIndex, offsetBy: position!)
    let range: Range<Index> = Range<Index>(start..<self.endIndex)
    return self.range(of: aString, options: .literal, range: range, locale: nil)?.lowerBound
}

知道如何修复初始化程序吗?


一些背景:

在 Swift 3 中,引入了额外的范围类型,使总共 四个(例如,参见Ole Begemann:Swift 3 中的范围 https://oleb.net/blog/2016/09/swift-3-ranges/):

Range, ClosedRange, CountableRange, CountableClosedRange

随着实施SE-0143 有条件的一致性 https://github.com/apple/swift-evolution/blob/master/proposals/0143-conditional-conformances.md在 Swift 4.2 中,“可数”变体 例如,不再是单独的类型,而是(受约束的)类型别名

 public typealias CountableRange<Bound: Strideable> = Range<Bound>
      where Bound.Stride : SignedInteger

因此,不同类型之间的各种转换 范围类型已被删除,例如

init(_ other: Range<Range.Bound>)

的初始化器struct Range。所有这些变化都是[stdlib][WIP] 使用条件一致性消除 (Closed)CountableRange (#13342) https://github.com/apple/swift/commit/9ee856f386f9be65234e25038a91a34fa07acacd commit.

所以这就是原因

let range: Range<Index> = Range<Index>(start..<self.endIndex)

不再编译。

怎么修

正如您已经想到的,这可以简单地修复为

let range: Range<Index> = start..<self.endIndex

or just

let range = start..<self.endIndex

没有类型注释。

另一种选择是使用一侧范围(在 Swift 4 中引入SE-0172 单边范围 https://github.com/apple/swift-evolution/blob/master/proposals/0172-one-sided-ranges.md):

extension String {
    func index(of aString: String, startingFrom position: Int = 0) -> String.Index? {
        let start = index(startIndex, offsetBy: position)
        return self[start...].range(of: aString, options: .literal)?.lowerBound
    }
}

这是有效的,因为子字符串self[start...] 分享其指数与原始字符串self.

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

无法使用类型为“(Range)”的参数列表调用类型“Range”的初始值设定项 的相关文章

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

    我想知道如何在 Swift 中弹出一个对话框游乐场 是的 必须在 Playgrounds 中 我尝试了以下代码 直接来自 AppleDevs 站点 然而 无论我如何尝试 self tag always抛出错误 谁能帮我这个 import U
  • CustomNSError 协议有什么作用以及为什么我应该采用它?

    什么是CustomNSError协议的用途以及为什么我应该采用它 Apple提供的文档仅指出 描述错误类型 具体提供域 代码和 用户信息字典 我已经在谷歌上搜索过 但找不到与我的问题相关的任何内容 每种类型都符合Error协议是隐含地桥接的
  • 如何在 Swift 中创建 UIAlertView?

    我一直在努力在 Swift 中创建 UIAlertView 但由于某种原因我无法得到正确的语句 因为我收到此错误 找不到接受提供的 init 重载 论点 我是这样写的 let button2Alert UIAlertView UIAlert
  • iOS 13 检查 CLLocationManager 的临时授权状态

    根据 WWDC 视频 https developer apple com videos play wwdc2019 705 https developer apple com videos play wwdc2019 705 当你要求 Al
  • 如何使用 SwiftUI 获取多个屏幕上的键盘高度并移动按钮

    以下代码获取键盘显示时的键盘高度 并将按钮移动键盘高度 在转换源 ContentView 和转换目标 SecibdContentView 处以相同的方式执行此移动 但按钮在转换目标处不移动 如何使按钮在多个屏幕上移动相同 import Sw
  • 如何使用 Swift 将“完成”按钮添加到 iOS 中的数字键盘?

    它在默认键盘上工作得很好 但我无法让它在数字键盘上工作 有任何想法吗 据我所知 你不能在键盘部分添加 完成 按钮 你应该添加一个inputAccessoryView to the UITextField or UITextView 如果这就
  • 使用 BGTaskScheduler 进行后台获取与调试模拟完美配合,但在实践中却不起作用

    我在 appDelegate 的 didFinishLaunchingWithOptions 中注册后台获取任务 BGTaskScheduler shared register forTaskWithIdentifier Backgroun
  • 领域:结果 和列表

    是否可以转换Results
  • 具有动态警报正文的快速本地通知

    所以我可以创建一个像这样的本地通知 var localNotification UILocalNotification localNotification fireDate NSDate timeIntervalSinceNow 7 loc
  • 如何向 UIView 添加大小调整手柄?

    我试图根据用户请求在运行时动态创建视图 UIImageView 和 UITextView 然后允许用户移动它们并调整它们的大小 除了调整大小之外 我的一切都工作得很好 我尝试使用捏合手势识别器 但发现它对于我想要的东西来说太笨拙了 因此 我
  • 如何右对齐 UILabel?

    Remark 实施 myLabel textAlignment right does not解决了我的问题 这不是我所要求的 我想要实现的是让标签对齐右对齐 为了更清楚地说明 这就是如何left对齐外观 就是这样justify对齐外观 if
  • 在 swift 中将简单字符串转换为 JSON 字符串

    我知道有一个同标题的问题here https stackoverflow com questions 30825755 convert string to json string in swift 但在那个问题中 他试图将字典转换为 JSO
  • ios - Gamekit 的 GKOctree 未找到元素

    我正在尝试使用GKOctree https developer apple com documentation gameplaykit gkoctree用于高效检索 3D 空间中的对象 然而 以下代码似乎没有按预期工作 import Gam
  • Swift:如何减少 didupdatelocations 调用

    我想出了一些代码来打印我所在位置的地址和邮政编码 这是在 didupdatelocation 函数中完成的 我遇到的唯一问题是 didupdatelocation 函数每秒都会更新该地址 因为这电池效率非常低 所以我一直在寻找使用间隔的方法
  • 用于字数计算的 Swift String 中的字数

    我想做一个程序来找出字符串中有多少个单词 用空格 逗号或其他字符分隔 然后把总数加起来 我正在制作一个平均计算器 所以我想要数据总数 然后将所有单词相加 update Xcode 10 2 x Swift 5 或更高版本 使用基础方法enu
  • 当 UITextField 已满或空时显示警报 Swift

    下面的代码中 如果 userNameTF 或 passwordTF 已满或为空 则会显示警报 IBAction func LoginBtn sender AnyObject let userName userNameTF text let
  • 如何防止Apple Watch进入睡眠状态?

    我们正在开发一个 Apple Watch 项目 但如果不被打扰 手表就会进入睡眠状态 有什么办法可以阻止它进入睡眠状态吗 据我所知和有关该主题的其他搜索 目前还没有api可通过编程方式启用或禁用 Apple Watch 的睡眠模式
  • 所需框架与静态库

    构建现代框架 https developer apple com videos play wwdc2014 416 says 每个应用程序都有自己的自定义框架副本 https stackoverflow com a 15262463 242
  • SKNode 上的 runAction 未完成

    我使用 NSOperation 子类来获取串行执行SKAction正如这个问题中所描述的 如何在 Swift 中子类化 NSOperation 以将 SKAction 对象排队以进行串行执行 https stackoverflow com
  • init 中的 Swift 通用约束

    我有通用的 我希望能够用特定的约束来初始化它 约束仅用于初始化 班里的其他人并不关心 这是一个简化的示例 struct Generic

随机推荐

  • Apollo重新获取不重新渲染组件

    我正在使用 graphql 从网络服务获取数据 我的客户端代码是这样的 import React Component from react import Platform StyleSheet Text ActivityIndicator
  • React - 加载外部脚本的问题

    我正在从事我的第一个 React 项目 并且对 JS 有点陌生 我正在努力解决一个非常基本的问题 我想知道调试这个的最佳实践是什么 我确实创建了我的应用程序create react app我没有成功加载外部脚本 令人惊讶的是 到目前为止 我
  • Aiohttp、Asyncio:运行时错误:事件循环已关闭

    我有两个脚本 scraper py 和 db control py 在 scraper py 我有这样的东西 def scrape category field pages search use proxy proxy file loop
  • JavaScript YUI3 使用全局变量?

    我不知道如何从 YUI3 中更新全局变量 考虑以下代码 window myVariable data one var yuiWrap YUI use node function Y console log window myVariable
  • Spring - 如何正确使用@Autowired来防止controller / MockMvc为空?

    我正在尝试运行一些单元测试并遇到一个问题 我确信该问题源于对自动装配的误解 我有一个单元测试类 我正在尝试使用 Autowired在 MockMvc 和 REST 控制器上 两者最终都为 null 我看到一些消息来源试图解释为什么会发生这种
  • 局部变量和寄存器变量可以声明为 extern 吗?

    我一直想知道是否可以在本地声明 extern 和寄存器变量 如果可以的话 会受到什么限制 在某些情况下 局部变量可以声明为 extern 让我们来读一下C99 N1256标准草案 http www open std org JTC1 SC2
  • 在python opengl中使用图像中的2d点获取空间中的3d点

    我正在尝试模拟房间中的深度相机 我的相机能够在世界中移动和旋转 并且房间被模拟为围绕 0 0 0 的 3d 立方体 单击按钮时 我想对图像中的 N 个随机点进行采样 并获取这些点与相机的距离 现实世界 中的距离 到目前为止 我已经成功创建了
  • 使用工作表格式时,text_wrap 格式会被忽略

    换行文本对我不起作用 我尝试了下面的代码 writer pd ExcelWriter out file name engine xlsxwriter df input to excel writer sheet name Inputs wo
  • 从 ManagedVM 内公开多个端口

    我正在使用托管 VM 功能来运行 WebSocket 服务器 我希望通过以下 URL 在任何端口 最好是端口 80 上向 Internet 公开该服务器 mvm mydomain com 我还没有取得多大成功 以下是我用来完成此任务的各种文
  • 如何在oracle中将2列合并(合并)为1列?

    当用户输入表名和 2 个需要合并的列名时 我有 3 个文本字段 我应该如何将 2 列值合并 组合 为 1 列值 我用的是oracle 11g企业版 连接 select col1 col2 from tablex
  • Rails 收到验证失败错误,但 ActiveRecord 错误模型中没有错误

    我在使用 save 保存模型时遇到验证错误问题 ActiveRecord 错误模型错误消息为空白 因此我不知道验证尝试中发生了什么错误 当我根据以下内容尝试errors full messages或errors each full时文档 h
  • 如何使用 JDBI 的 Sql 对象 API 在运行时创建动态 Sql 查询?

    我已经将现有项目从 jdbc 迁移到 jdbi 并且充分利用了 jdbi 漂亮的 SQL 对象 API 我们使用的是mysql 虽然 SQL 对象 API 可以构造在编译时已知的已处理查询 但我找不到在运行时生成查询的方法 具体来说 我希望
  • 使用 codeigniter 实现 jquery 上传插件“uploadify”

    我如何在 codeigniter 中实现这个 上传 Jquery http www uploadify com 我的意思是控制器是什么 进度如何跟踪 如果用户没有安装flashplayer会发生什么 我如何检查进度 有人用 codeigni
  • 禁用日期选择器上的过去日期

    如何在日期时间选择器上禁用当前日期的过去日期 我尝试了一些类似问题的帖子 但无法实现 以下是我尝试过的
  • 使用 HTMLDocument 在 JTextPane 中启用自动换行

    我到处都读到人们寻找方法的答案enabling文字换行JTextPane 但它们都不适合我 我正在使用一个HTMLDocument 显示 text html 内容 到目前为止我发现没有任何东西可以让它发挥作用 这JTextPane始终使 J
  • 错误:“类别”不是注册规模

    我正在尝试从以下位置迁移 Chart js2 9 3 to 3 3 0即使在应用更改之后 https www chartjs org docs latest getting started v3 migration html https w
  • 用VB6生成Excel文件

    我正在寻找有关这个具体问题的建议 在 Visual Basic 6 VB6 中生成 Excel 文件 常规 XLS 而不是 XLSX 的最快方法是什么 多谢 最简单的方法是在项目中设置对 Excel COM 对象的引用 并以编程方式将所有数
  • 如何安全关闭 mlflow ui?

    运行后mlflow ui在远程服务器上 我无法重新打开mlflow ui again 解决方法是使用以下命令终止服务器中的所有进程pkill u MyUserName 否则我会收到以下错误 INFO Starting gunicorn 20
  • 猫头鹰旋转木马:到达最后一张幻灯片时运行功能

    当到达轮播的最后一张幻灯片时 我试图运行一个函数 我已经设法使用 afterInit 和 afterMove 回调来循环轮播项目 但我只需要能够在循环结束时运行一个函数 希望你能帮忙 Plugin http owlgraphic com o
  • 无法使用类型为“(Range)”的参数列表调用类型“Range”的初始值设定项

    更新到 Xcode 10 beta 显然是 Swift 4 1 50 附带的 后 我看到以下错误 我不知道如何修复 无法使用类型为 Range 的参数列表调用类型 Range 的初始值设定项 在以下函数中Range