我在仅限手表的应用程序中播放声音,但每次播放声音时调试器都会显示错误:“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) 我在安装宝石时遇到了一些问题,所以我尝试更新cocoapods.我首先卸载它,然后尝试使用命令sudo gem install cocoapods和gem install cocoapods再次安装它.这不起作用,因为我有以下错误:
错误:错误:执行gem时...(Errno :: EHOSTDOWN)主机关闭 - 发送到(2)"8.8.8.8"端口53
当我执行gem install cocoapods和sudo gem install cocoapods时会发生这种情况.知道为什么会这样吗?我与互联网的联系还可以.我已经尝试在互联网上搜索可能的解决方案,但找不到类似的解决方案.
我试图将我的函数从使用完成处理程序更改为使用组合的函数,但我收到一条错误消息。
使用完成处理程序:
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)
使用组合:
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 我使用这个代码:
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)
但两者都给出错误。知道我该如何解决这个问题吗?