我正在使用新的快速图表框架来显示一些数据。为了手动控制 x 轴 AxisValueLabels 的频率以及调整颜色,我实现了以下内容:
.chartXAxis {
AxisMarks(values: .automatic(desiredCount: 11, roundLowerBound: true, roundUpperBound: true)) { _ in
AxisGridLine(stroke: .init(lineWidth: 1)).foregroundStyle(Color.orange)
AxisValueLabel().foregroundStyle(Color.orange).font(.subheadline).offset(x: -10)
}
}
Run Code Online (Sandbox Code Playgroud)
我想显示每个 x 轴值的值(有 11 个点,但仅显示 10 个)。我已经尝试了无数的方法,但无法通过调整desiredCount参数来显示它应该显示的内容。将不胜感激在这件事上的任何帮助..
import Charts
import Foundation
import SwiftUI
struct FakeData: Codable {
var questionAndAnswers: [Int: Int]
var timePerQuestion: [Double]
var date: Date = .now
}
extension FakeData {
static let oneFakeInstance = FakeData(questionAndAnswers: [1875: 1875,
1890: 1890,
1980: 1980,
2112: 2112,
2726: 2726,
4088: 4088,
4284: 4284,
4784: 4784,
4800: 4800, …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用以下代码获取用户运营商名称:
CTTelephonyNetworkInfo* info = [[CTTelephonyNetworkInfo alloc] init];
CTCarrier* carrier = info.subscriberCellularProvider;
NSString *mobileCountryCode = carrier.mobileCountryCode;
NSString *carrierName = carrier.carrierName;
NSString *isoCountryCode = carrier.isoCountryCode;
NSString *mobileNetworkCode = carrier.mobileNetworkCode;
Run Code Online (Sandbox Code Playgroud)
但是当我尝试记录时,结果是这样的:
2023-05-22 16:47:39.831078+0700 MotionTrade[7686:985518] carrier name = --
2023-05-22 16:47:39.831260+0700 MotionTrade[7686:985518] mobileCountryCode = 65535
2023-05-22 16:47:39.831342+0700 MotionTrade[7686:985518] mobileNetworkCode = 65535
Run Code Online (Sandbox Code Playgroud)
基本上我已经尝试了每个堆栈溢出答案,但我仍然得到相同的结果,
我在我的iPhone上调试这个,没有使用WiFi,而且我只使用物理SIM卡,而不是电子SIM卡。
谁能告诉我为什么我总是收到“--”?
在我浏览了一下之后,国家代码“65535”这可能表明 SIM 卡已被移除,或者通常目前无法拨打电话。
谁能帮我?为什么会发生这种情况以及如何获得正确的蜂窝提供商名称?
我什至尝试使用以下代码在我的新空白项目中执行此操作:
override func viewDidLoad() {
super.viewDidLoad()
let networkInfo = CTTelephonyNetworkInfo()
let carrierName = networkInfo.serviceSubscriberCellularProviders
dump(carrierName)
}
Run Code Online (Sandbox Code Playgroud)
但我的日志中仍然得到相同的结果:
Optional(["0000000100000001": CTCarrier (0x281275d10) {
Carrier name: [--]
Mobile Country …Run Code Online (Sandbox Code Playgroud) 假设我有一个适用于 macOS (Catalina) 的应用程序。
这个应用程序没有隐藏。但另一个应用程序被激活(最前面/最上面)
我想捕获按钮/任何其他视图的点击(我使用的是 swiftUI,所以一切都是视图),以防点击我的应用程序。
我怎样才能做到这一点?
UPD:如何使用 SwiftUI 应用“acceptsFirstMouse”来构建应用程序?
我的 Xcode 帐户有问题。
我想使用我的 Apple ID 登录 Xcode。
但进入后,遇到以下错误:【您的会话已过期。请登录。尝试重新登录或联系苹果开发者支持来解决帐户访问问题]
两因素身份验证为一,验证电话号码和电子邮件,macOS Big Sur 版本 11.0 Beta (20A5364e) Xcode 版本 11.7 (11E801a) 上的 RecoveryKey
请帮我。
我使用Apple提供的URLSessionWebSocketTask来设置websocket。我接收、发送消息并且可以发送 ping。但是我应该如何接收和响应来自 ws 服务器的 ping?我必须使用向客户端发送 ping 的服务器来检查它们是否仍然存在。
如果我从服务器收到某些信息,我如何识别来自该服务器的 ping?收到的消息中是否有一些密钥代码?
func receive() {
webSocketTask.receive { result in
print(result)
switch result {
case .failure(let error):
print("Failed to receive message: \(error)")
....
case .success(let message):
switch message {
case .data(let data):
print("\(data)")
....
case .string(let text):
print("\(text)")
.....
@unknown default:
fatalError()
}
}
receive()
}
}
Run Code Online (Sandbox Code Playgroud)
上面当然是一段常见的代码,但是我应该实现什么来响应来自连接服务器的 ping ?我确实阅读了几个文档,但找不到任何内容、任何指示或建议。
我确实找到了以下 OpCode0x9和0xA. 那些是“乒”和“乒”吗?我可以发送 a 0x9as ping 和 for pong a吗0xA?如果我尝试将此作为短信,但没有得到任何反应。应该是一个框架吗?那么我到底做错了什么?
我知道通过 FFS,我可以在我的 Codable 对象中使用 @DocumentID 和 @ServerTimestamp。
某处有文档吗?
我找到了这个问题的答案,但答案只是说“FirebaseFirestoreSwift 只是 Firestore 的包装器”...但这并不准确,就好像我不导入 FirebaseFirestoreSwift 我无法再使用上面列出的属性一样。
据我所知,你不能使用if let不可选的变量......
func run() {\n let title = "Hello, world!"\n if let title = title { /// Initializer for conditional binding must have Optional type, not \'String\'\n print(title)\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n...但由于某种原因,当它位于闭包内时,它会起作用:
\nfunc run() {\n let title = "Hello, world!"\n let closure = {\n if let title = title { /// No error!\n print(title)\n }\n }\n closure()\n}\nRun Code Online (Sandbox Code Playgroud)\n这是在 Xcode 14.0 beta (14A5228q) 上。这是一个错误,还是一个功能?当我在Xcode 13.3(13E113)上测试时,错误再次出现。
\n顺便说一句,以下 SwiftUI 代码在 Xcode 13 和 Xcode 14 上都可以正常编译:
\n …我使用 Xcode 14.1 升级到 macOS Ventura,现在收到此构建错误:
iOS 部署目标是 16.0,项目格式与 Xcode 14.0 兼容。我使用 cocoapods 1.11.3 进行包管理。
我在 SwiftUI 应用程序中使用 Swift Charts 来制作折线图。我想旋转 Y 轴标签,使其从下到上读取。我尝试旋转文本,但旋转导致标签无法正确渲染。有没有办法旋转轴标签?
import SwiftUI
import Charts
struct ContentView: View {
struct Point: Identifiable {
let id = UUID()
let x: Float
let y: Float
}
let points = [
Point(x: 0, y: 1),
Point(x: 1, y: 4.5),
Point(x: 2, y: 3),
Point(x: 3, y: 6),
Point(x: 4, y: 7),
Point(x: 5, y: 5.2),
Point(x: 6, y: 9),
Point(x: 7, y: 12.5),
]
var body: some View {
Chart {
ForEach(points) { point in
LineMark( …Run Code Online (Sandbox Code Playgroud) 我正在 Storyboard/Swift (XCode 14.2) 中编写一个应用程序。当我在 iPhone (14 pro 16.3.1) 或 iPhone 模拟器 (16.2) 上运行该应用程序时,不会出现错误。但是当我在 iPad 模拟器中测试我的应用程序时(尝试了专业版、空气版和普通版):
[API] 无法创建 0x88 映像槽 (alpha=1 Wide=0) (client=0x29bd01dc) [0x5 (os/kern) 失败]
我使用 UICollectionView 作为菜单,当我按下相应的图块/按钮时,错误会打印在调试区域中。该应用程序没有中断并且看起来工作正常。
我尝试用 Google 搜索这个问题并搜索 StackOverflow,但它没有给我足够的线索来告诉我该怎么做。Google/Stack 几乎没有任何结果。
我对 Swift 还很陌生。我使用单一尺寸的应用程序图标(1024pt),而不是所有那些经过调整的图标。每个图像均以通用模式、1x、2x 和 3x 给出。(使用 Asset Catalog Creator Pro 制作)
有人能指出我的错误吗?
swift ×5
swiftui ×4
ios ×3
xcode ×2
firebase ×1
macos ×1
objective-c ×1
ping ×1
storyboard ×1
websocket ×1