在 Swift 中,我有一个 String Variable thisString。我想检查以确保字符串仅包含字母、数字和/或破折号 (-)。除了这样做之外:
if ( thisString.contains("$") || thisString.contains("%") ) {
//reject
} else {
//accept
}
Run Code Online (Sandbox Code Playgroud)
对于每个不受欢迎的角色,这很荒谬。我想不通。
理论上,我想用正则表达式做这样的事情:
if ( thisString.contains(regex([^a-zA-Z0-9-]) ) {
//reject
} else {
//accept
}
Run Code Online (Sandbox Code Playgroud)
这可能吗?
我正在尝试在 App Store 中发布我的应用程序。我的应用程序仅适用于 iOS 移动设备。但当我尝试添加应用程序屏幕截图时,我发现有一个 iPad 选项。
现在,我想删除 App Store Connect 中的 iPad 屏幕截图选项。
我没有找到任何解决方案。
在你说这是一个小问题并且在这里和其他论坛上讨论了一百万次之前,我想说我经历了所有这些问题并尝试实施他们的每个解决方案,但没有运气。我要么错过了一些非常小的细节,要么我的项目总体上有问题。希望你能帮忙。
问题: 在我更改“Info.plist”的位置后,我的项目显示黑屏。
或者我收到以下错误:
我已经尝试过的:
结果我要么黑屏,要么出现上述错误。我究竟做错了什么?
我正在尝试在 SwiftUI 中创建一个子视图,可以选择从父视图中获取一个函数,以便我可以在未给出操作的情况下执行逻辑,或者如果给出了操作,则可以在 ChildView 中调用操作。
当我尝试运行我的代码时,我在调用中缺少参数“action”的参数,我无法弄清楚为什么,因为我在 ChildView 中将操作标记为可选,所以如果在父视图?
我在 ChildView 的公共初始值设定项中将操作标记为 @escaping,以满足编译器在单击“修复”后添加 @escaping 的要求,但不知道为什么或是否应该这样做?
如果我不将操作标记为 @escaping,则会收到错误将非转义参数“操作”分配给公共初始值设定项中的 @escaping 闭包。
也许公共初始化程序导致了我的问题,但我需要将其包含在我的案例中,但我认为我错误地初始化了可选函数?
我怎样才能完成我想做的事情?
家长观点
struct ParentView: View {
var body: some View {
ChildView() // ERROR: Missing argument for parameter 'action' in call???
}
}
Run Code Online (Sandbox Code Playgroud)
子视图
struct ChildView: View {
let action: () -> ()?
// ^ Should not have to be supplied since marked as optional??
public init(action: @escaping () -> ()? ) {
self.action …Run Code Online (Sandbox Code Playgroud) 我使用的是 macOS Ventura 13.2.1、iOS 16.1 和 Xcode 14.2。
我已经将证书添加到钥匙串中。当我尝试通过 Xcode 添加配置文件时 -> 窗口 -> 设备和模拟器 -> 右键单击连接的设备 -> 显示配置文件 -> 然后选择正确的配置文件。我收到此错误:
“无法在此设备上安装一个或多个配置文件。请确保为此设备配置配置文件。如果没有,请尝试生成新的配置文件'。
我尝试了各种方法,例如重新下载证书和配置文件、将证书重新添加到钥匙串、取消配对和重新配对 iPhone。
我正在尝试使用带有搜索栏的 SwiftData 框架创建一个视图,用户可以在其中输入飞机的注册信息并动态更新列表。但首先我不确定我是否正确执行(我在网上找不到太多示例)并且收到错误:
通用结构“ForEach”要求“Query<Aircraft, [Aircraft]>”符合“RandomAccessCollection”
struct AirplanePick: View {
@State var addNewPlane = false
@Environment (\.modelContext) var mc
@Binding var planePick: Aircraft?
let dm: DataManager
@Environment(\.presentationMode) var presentationMode
@State var searchTerm: String = ""
var filterPlanes : Query<Aircraft, [Aircraft]>{
var predicate: Predicate<Aircraft>?
if !searchTerm.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty {
predicate = .init(#Predicate { $0.registration.contains(searchTerm) })
}
return Query(filter: predicate, sort: \.registration)
}
var body: some View {
List {
Text("planes are \(planes.count)")
ForEach(filterPlanes, id: \.self){ plane in
Button {
planePick = plane
self.presentationMode.wrappedValue.dismiss() …Run Code Online (Sandbox Code Playgroud) 我正在服务器端尝试 Swift,并遇到了一个问题,我也在最新版本的 Xcode 上看到过这个问题。
当执行异步任务块print或debugPrint在异步任务块内时,不会出现输出:
@main
18 struct PostgresTest {
19 static func main() {
20 print("Test print1")
21 Task {
22 print("Test print2")
23
24 await TestPostgres.connectDisconnect()
25 }
26 }
27 }
Run Code Online (Sandbox Code Playgroud)
对于上面的代码,我可以看到终端上出现“Test print1”,但是,第二次打印的输出没有出现。
我究竟做错了什么?
我正在尝试使用此功能,但它不适用于 iOS 17。\n我想每次在深色和浅色模式之间切换时进行更改。
\n这是我的功能:
\noverride func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) {\n super.traitCollectionDidChange(previousTraitCollection)\n\n // Check if the user interface style has changed\n if self.traitCollection.hasDifferentColorAppearance(comparedTo: previousTraitCollection) {\n // User interface style has changed (light to dark or vice versa)\n if self.traitCollection.userInterfaceStyle == .light {\n // Code to execute in light mode\n print("App switched to light mode")\n } else {\n // Code to execute in dark mode\n print("App switched to dark mode")\n }\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n这就是问题所在:
\n\n\xe2\x80\x98traitCollectionDidChange\xe2\x80\x99 在 iOS 17.0 …
我试图弄清楚如何使用快捷方式在 Xcode 版本 12.4 中复制一行代码(特别是在 .swift 文件中,当前重复的“cmd + D”快捷方式仅适用于 UIBuilder)。
我在互联网上看到了很多文档,但没有提到最新版本的 Xcode。有人尝试解决这个问题吗?
ios ×4
swift ×4
xcode ×3
swiftui ×2
info-plist ×1
iphone ×1
predicate ×1
swift-data ×1
uikit ×1