小编Bjo*_*aye的帖子

MEMixerChannel.cpp:1577 此平台不支持空间化 (err=-4)

我在仅限手表的应用程序中播放声音,但每次播放声音时调试器都会显示错误:“MEMixerChannel.cpp:1577 此平台不支持空间化 (err=-4)”

有人知道为什么吗?是因为我正在为 WatchOS 开发吗?

负责播放声音的经理:

import Foundation
import AVFoundation

final class SoundManager {
    
    var player: AVAudioPlayer?
    
    func playSound(name: String, volume: Float = 1.0) {
        if let url = Bundle.main.url(forResource: name, withExtension: "aif") {
            
            do {
                player = try AVAudioPlayer(contentsOf: url)
                player?.prepareToPlay()
                player?.setVolume(volume, fadeDuration: 0.5)
            } catch {
                print("Error getting the audio file: \(error.localizedDescription)")
            }
        }
        
        player?.play()
    }
}
Run Code Online (Sandbox Code Playgroud)

avaudioplayer swift watchos

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

安装cocoapods时出错 - 主机已关闭

我在安装宝石时遇到了一些问题,所以我尝试更新cocoapods.我首先卸载它,然后尝试使用命令sudo gem install cocoapods和gem install cocoapods再次安装它.这不起作用,因为我有以下错误:

错误:错误:执行gem时...(Errno :: EHOSTDOWN)主机关闭 - 发送到(2)"8.8.8.8"端口53

当我执行gem install cocoapods和sudo gem install cocoapods时会发生这种情况.知道为什么会这样吗?我与互联网的联系还可以.我已经尝试在互联网上搜索可能的解决方案,但找不到类似的解决方案.

cocoapods

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

将带有completionHandler 的函数转换为Combine

我试图将我的函数从使用完成处理程序更改为使用组合的函数,但我收到一条错误消息。

  1. 使用完成处理程序:

     typealias AuthorizationCompletion = (UNAuthorizationStatus) -> ()
    
     func reloadAuthorizationStatus(completion: @escaping AuthorizationCompletion) {
     UNUserNotificationCenter.current().getNotificationSettings { settings in
         DispatchQueue.main.async {
             let notificationStatus = settings.authorizationStatus
             completion(notificationStatus)
         }
     }
    
    Run Code Online (Sandbox Code Playgroud)
  2. 使用组合:

     func reloadAuthorizationStatus() -> AnyPublisher<UNAuthorizationStatus, Error>  {
     UNUserNotificationCenter.current().getNotificationSettings { settings in
         Just(settings)
             .tryMap({$0.authorizationStatus})
             .eraseToAnyPublisher()
     }
    
    Run Code Online (Sandbox Code Playgroud)

但出现错误无法将类型“Void”的返回表达式转换为返回类型“AnyPublisher<UNAuthorizationStatus, Error>”

从我将返回类型添加到函数的那一刻起,设置 let 将从 UNNotificationSettings 类型更改为错误类型

我在这里缺少什么?

swift combine

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

三元展开迅速

在 swift 我使用这个代码:

var categories: Results<Category>? //Realm dataType

override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

    if let categories = categories, !categories.isEmpty {
        return categories.count
    } else {
        return 1
    }
}
Run Code Online (Sandbox Code Playgroud)

我现在希望将 tableView 的代码构建为三元运算符,但不知道如何执行此操作。我找到了以下页面:https : //dev.to/danielinoa_/ternary-unwrapping-in-swift-903但我仍然不清楚。

我试过的是:

return categories?.isEmpty ?? {($0).count} | 1
Run Code Online (Sandbox Code Playgroud)

或者

let result = categories?.isEmpty ?? {($0).count} | 1
return result
Run Code Online (Sandbox Code Playgroud)

但两者都给出错误。知道我该如何解决这个问题吗?

ternary-operator optional ios swift unwrap

0
推荐指数
1
解决办法
582
查看次数