更新:添加关于 Hashable 的相同错误
我创建了一个Identifiable
合规的协议和合规的结构。然后,当我创建列表并在 中引用它时ForEach
,我收到错误(关于)Type 'any TestProtocol' cannot conform to 'Identifiable'
我收到相同的错误。Hashable
我应该如何修复这个程序?
如果我写ForEach(list, id: \.id)
,它可以工作,但我认为遵守可识别性是没有意义的。
import SwiftUI
protocol TestProtocol: Identifiable, Hashable {
var id: UUID { get set }
var name: String { get set }
func greeting() -> String
static func == (lhs: Self, rhs: Self) -> Bool
}
extension TestProtocol {
static func == (lhs: Self, rhs: Self) -> Bool {
return lhs.id == rhs.id
}
}
struct Person: …
Run Code Online (Sandbox Code Playgroud) 在 iOS 16 之前,横向呈现单屏对于纵向应用来说是可以的。工作代码如下。
备注:整个应用程序仅处于纵向模式。
override public var shouldAutorotate: Bool {
return false
}
override public var supportedInterfaceOrientations: UIInterfaceOrientationMask {
return .landscapeLeft
}
override public var preferredInterfaceOrientationForPresentation: UIInterfaceOrientation {
return .landscapeLeft
}
Run Code Online (Sandbox Code Playgroud)
我找到了解决方案,但它适用于UIWindowScene,但我需要 UIWindow 中的解决方案。我需要帮助来修复 iOS 16 中的问题。
Xcode - 14.0,iOS - 16.0,模拟器 - 14 Pro
如果有人需要,我可以准备演示。
如何在 switch case 模式语句中使用 Swift 文字正则表达式?
根据 WWDC 2022 演示幻灯片中的示例,以下内容预计可以编译并运行正常:
import Foundation
import RegexBuilder
switch "abc" {
case /\w+/:
print("matched!")
default:
print("not matched.")
}
Run Code Online (Sandbox Code Playgroud)
但是,会产生以下错误:
类型的表达式模式
Regex<Substring>
无法匹配类型的值String
是否可以switch
case
通过某种方式修改带有 Swift 正则表达式文字表达式的语句以使其正常运行?如何在 switch case 模式语句中使用新的 Swift 5.7 正则表达式功能?
我相信我正在从命令行运行 Swift 5.7,并且 Swift 5.7 应该具有新的 Regex 类和 /.../ 语法。但似乎并非如此。
我有以下 Swift 源代码“parse.swift”。但 Swift 似乎不理解 Swift 5.7 /.../ 语法来指示 Regex (生成的错误不应该用于合法的 regex 模式),所以我尝试了一种不同的方法,发现它无法识别新的 Regex 类本身。
let pattern = #"^ ,([A-Z][A-Z])([0-9][0-9]),(.*?),(.*?) "#
let regex = try! Regex(pattern)
Run Code Online (Sandbox Code Playgroud)
$ swift parse.swift < somefile
parse.swift:3:18:错误:在范围内找不到“Regex” 让正则表达式 = 尝试!正则表达式(模式) ^~~~~
有什么我需要导入或做不同的事情吗?
这是它说我正在运行的版本:
$ swift --version
Apple Swift 版本 5.7-dev(LLVM eecf02df5133efe、Swift ad06e7d7251311a) 目标:arm64-apple-macosx12.0
我通过从 ~/.zshrc 导出以下内容来选择 5.7 版本的 Swift
export TOOLCHAINS=org.swift.57202206261a
export TOOLCHAIN_DIR=/Library/Developer/Toolchains/swift-5.7-DEVELOPMENT-SNAPSHOT-2022-06-26-a.xctoolchain
Run Code Online (Sandbox Code Playgroud) 更新到 Xcode 14、iOS 16、Swift 5.7 后,编译项目时我得到:
Sendability of function types in instance method 'addObserver(forName:object:queue:using:)' does not match requirement in protocol 'NotificationCenterProtocol'
Run Code Online (Sandbox Code Playgroud)