小编Sid*_*Sid的帖子

SFSpeechAudioBufferRecognitionRequest 不能重复使用

在本教程中使用了漂亮的代码!有一些更正。语音识别代码正在工作。但是如果我触发识别码两次以上,就会弹出标题中的错误。很难找到解决这个问题的文档。任何人?

private func recordAndRecognizeSpeech()
    {
        let node = audioEngine.inputNode
        let recordingFormat = node.outputFormat(forBus: 0)
        node.installTap(onBus: 0, bufferSize: 1024, format: recordingFormat) { buffer, _ in
            self.request.append(buffer)
        }

        audioEngine.prepare()
        do {
            try audioEngine.start()
        }
        catch {
            self.sendAlert(message: "There has been an audio engine error.")
            return print (error)
        }

        guard let myRecognizer = SFSpeechRecognizer() else
        {
            self.sendAlert(message: "Speech recognition is not supported for your current locale.")
            return
        }

        if !myRecognizer.isAvailable
        {
            self.sendAlert(message: "Speech recognition is not currently available. Check back at …
Run Code Online (Sandbox Code Playgroud)

swift

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

SwiftUI:如何弹出 WatchOS 的根视图?

我需要从深层细节视图弹出到根视图。虽然以下使用 isDetailList 和 isActive 的解决方案适用于 iOS,但它不适用于 watchOS。isDetailList 命令在 watchOS 中不可用。

import SwiftUI

class AppState : ObservableObject {
    @Published var showState : Bool = false
}

struct MoreTests: View {
    @EnvironmentObject var appState : AppState    // injected from SceneDelegate
    var body: some View {
        NavigationView {
            NavigationLink(
                destination: MoreView1(),
                isActive: $appState.showState,      // required to work
                label: { Text("Go to MoreView1") }
            ).isDetailLink(false)       // required to work
        }.navigationBarTitle("Root")
    }
}

struct MoreView1: View {
    var body: some View {
        NavigationLink(
            destination: MoreView2(), …
Run Code Online (Sandbox Code Playgroud)

apple-watch watchkit watchos swiftui

5
推荐指数
1
解决办法
316
查看次数

CoreData+CloudKit ...跳过“ANSCKDATABASEMETADATA”的迁移,因为它已经有一个名为“ZLASTFETCHDATE”的列

有人在 WatchKit + CoreData + CloudKit 上遇到过这个错误吗?

CoreData:调试:CoreData + CloudKit:-[PFCloudKitMetadataModelMigratorcalculateMigrationStepsWithConnection:错误:](404):跳过“ANSCKDATABASEMETADATA”的迁移,因为它已经有一个名为“ZLASTFETCHDATE”的列

请注意,该应用程序可以运行,并且我在模拟器或真实手表上运行该应用程序时没有遇到任何问题。其中有 9 个“错误”。

我认为这与下面持久容器的设置方式有关。

description.setOption(true as NSObject, forKey: NSPersistentStoreRemoteChangeNotificationPostOptionKey) 
...
container.viewContext.automaticallyMergesChangesFromParent = true   // bring all iCloud changes into app
container.viewContext.mergePolicy = NSMergeByPropertyObjectTrumpMergePolicy // iCloud wins, local memory loses
Run Code Online (Sandbox Code Playgroud)

core-data core-data-migration swift cloudkit watchkit

5
推荐指数
1
解决办法
594
查看次数

SwiftUI 调度队列按钮

我不明白 SwiftUI 和 DispatchQueues 如何工作的问题。这是代码。

这有效并将继续每秒刷新计数器状态变量。

// Example 1 - This works
struct TimerButtonTest : View {
    @State var counter: Int = 0
    var body: some View {        
        start()
        return VStack { Text("\(counter)") }
    }

    func start() {
        DispatchQueue.main.asyncAfter(deadline: .now() + .milliseconds(1000)) {
            self.counter += 1
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这不。按下按钮后,计数器增加 1(1 秒后)但停止。

// Example 2 - This does not work
struct TimerButtonTest : View {
    @State var counter: Int = 0
    var body: some View {
        return Button(action: {self.start()}, label: …
Run Code Online (Sandbox Code Playgroud)

ios swift swiftui

4
推荐指数
1
解决办法
2877
查看次数

如何在SwiftUI中创建字符串的大写版本?

可以使用Swift将字符串大写

let str = "Hello World!"
print(str.uppercased())
Run Code Online (Sandbox Code Playgroud)

此代码将显示“ HELLO WORLD!”。进入Xcode控制台。但是,如何使用SwiftUI大写如下所示的String呢?

Text("Hello World!")
Run Code Online (Sandbox Code Playgroud)

swift swiftui

3
推荐指数
2
解决办法
458
查看次数

如何在 SwiftUI 中设置自定义环境键?

创建自定义环境键有效,但如果我希望在视图中设置该值,XCODE 不允许这样做。但是可以设置预定义的环境值。我究竟做错了什么?

struct ResetDefault: EnvironmentKey {
    static var defaultValue: Bool = false
}

extension EnvironmentValues {
    var resetDefault: Bool {
        get { self[ResetDefault.self] }
        set { self[ResetDefault.self] = newValue }
    }
}

struct ResetView: View {
    @Environment(\.resetDefault) var reset
    var body: some View {
        Text("Reset").onAppear() {
            reset = true.        // Cannot assign to property: 'reset' is a get-only property
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

swiftui

3
推荐指数
1
解决办法
2943
查看次数