小编Han*_*ash的帖子

Swift Charts 不会显示带有 AxisMarks 的最后一个 x 轴 AxisValueLabel

我正在使用新的快速图表框架来显示一些数据。为了手动控制 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)

swift swiftui swiftui-charts

7
推荐指数
2
解决办法
2237
查看次数

尝试获取运营商名称时出现“--”

我正在尝试使用以下代码获取用户运营商名称:

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)

objective-c ios core-telephony

7
推荐指数
1
解决办法
1695
查看次数

如何使用 SwiftUI 应用“acceptsFirstMouse”来构建应用程序?

假设我有一个适用于 macOS (Catalina) 的应用程序。

这个应用程序没有隐藏。但另一个应用程序被激活(最前面/最上面)

我想捕获按钮/任何其他视图的点击(我使用的是 swiftUI,所以一切都是视图),以防点击我的应用程序。

我怎样才能做到这一点?


UPD:如何使用 SwiftUI 应用“acceptsFirstMouse”来构建应用程序?

macos swift swiftui macos-catalina

6
推荐指数
1
解决办法
721
查看次数

Xcode:您的会话已过期。请登录。尝试重新登录或联系 Apple 开发者支持来解决帐户访问问题

我的 Xcode 帐户有问题。

我想使用我的 Apple ID 登录 Xcode。

但进入后,遇到以下错误:【您的会话已过期。请登录。尝试重新登录或联系苹果开发者支持来解决帐户访问问题]

两因素身份验证为一,验证电话号码和电子邮件,macOS Big Sur 版本 11.0 Beta (20A5364e) Xcode 版本 11.7 (11E801a) 上的 RecoveryKey

请帮我。

在此输入图像描述

xcode

6
推荐指数
1
解决办法
7323
查看次数

URLSessionWebSocketTask - 使用客户端 pong 对来自服务器的 ping 进行响应

我使用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 ?我确实阅读了几个文档,但找不到任何内容、任何指示或建议。

我确实找到了以下 OpCode0x90xA. 那些是“乒”和“乒”吗?我可以发送 a 0x9as ping 和 for pong a吗0xA?如果我尝试将此作为短信,但没有得到任何反应。应该是一个框架吗?那么我到底做错了什么?

ping websocket swift

6
推荐指数
1
解决办法
696
查看次数

FirebaseFirestore 和 FirebaseFirestoreSwift 之间有什么区别?

我知道通过 FFS,我可以在我的 Codable 对象中使用 @DocumentID 和 @ServerTimestamp。

某处有文档吗?

我找到了这个问题的答案,但答案只是说“FirebaseFirestoreSwift 只是 Firestore 的包装器”...但这并不准确,就好像我不导入 FirebaseFirestoreSwift 我无法再使用上面列出的属性一样。

firebase swift google-cloud-firestore

6
推荐指数
1
解决办法
2144
查看次数

Swift 5.7 - `if let` 适用于闭包内的非可选值

据我所知,你不能使用if let不可选的变量......

\n
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}\n
Run Code Online (Sandbox Code Playgroud)\n

...但由于某种原因,当它位于闭包内时,它会起作用:

\n
func run() {\n    let title = "Hello, world!"\n    let closure = {\n        if let title = title { /// No error!\n            print(title)\n        }\n    }\n    closure()\n}\n
Run Code Online (Sandbox Code Playgroud)\n

这是在 Xcode 14.0 beta (14A5228q) 上。这是一个错误,还是一个功能?当我在Xcode 13.3(13E113)上测试时,错误再次出现。

\n
\n

顺便说一句,以下 SwiftUI 代码在 Xcode 13 和 Xcode 14 上都可以正常编译:

\n …

swift swiftui

6
推荐指数
1
解决办法
468
查看次数

Xcode:无法打开配置设置文件

我使用 Xcode 14.1 升级到 macOS Ventura,现在收到此构建错误:

在此输入图像描述

iOS 部署目标是 16.0,项目格式与 Xcode 14.0 兼容。我使用 cocoapods 1.11.3 进行包管理。

xcode ios

6
推荐指数
1
解决办法
1万
查看次数

在 Swift 图表中旋转轴标签

我在 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)

swiftui swiftui-charts

6
推荐指数
1
解决办法
1041
查看次数

运行时错误(警告?):无法创建 0x88 图像槽,有人有线索吗?

我正在 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 制作)

有人能指出我的错误吗?

storyboard ios uicollectionview asset-catalog

6
推荐指数
1
解决办法
3221
查看次数