小编Pio*_*979的帖子

Swift 合并错误:'Publisher' 上的方法需要 .Failure'(又名 'WeatherError')和 'Never' 是等价的

我现在正在学习 Swift Combine,找到了非常简单的视频教程,但是由于某种原因,当我尝试在 PassthroughSubject<Int, WeatherError>() 中使用我的枚举时出现错误

检查此代码:

import Combine 

enum WeatherError: Error {
   case thingsJustHappen
   
}
let weatherPublisher = PassthroughSubject<Int, WeatherError>()


let subscriber = weatherPublisher
   .filter {$0 > 10}
   .sink { value in
       print("\(value)")
   }

weatherPublisher.send(10)
weatherPublisher.send(30)
Run Code Online (Sandbox Code Playgroud)

“.filter”突出显示,错误是:

Referencing instance method 'sink(receiveValue:)' on 'Publisher' 
requires the types 'Publishers.Filter<PassthroughSubject<Int, WeatherError>>.Failure' 
(aka 'WeatherError') and 'Never' be equivalent
Run Code Online (Sandbox Code Playgroud)

令人惊讶的是,这段代码在视频教程中有效。我怎样才能让我的 WeatherError 和 Never 相等???

xcode ios swift combine

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

我的 iOS SwiftUI 项目无法使用 AVAudioPlayer 播放声音

我有一个愚蠢的问题,但由于某种原因我无法解决它。我尝试使用 AVAudioPlayer 播放声音,但听不到任何声音。没有错误,但我的应用程序仍然保持沉默。它是用 SwiftUI 构建的。这是一段代码:

struct SoundsListView: View {
    
   var body: some View {
        List(Helpers.shared.sounds, id:\.self) { item in
            Text(item)
            Spacer()
            Button(action: {
                var soundPlayer: AVAudioPlayer?
                guard let audioFile: URL = Bundle.main.url(forResource: "Analog watch", withExtension: "mp3") else { return }
                do {
                    soundPlayer = try AVAudioPlayer(contentsOf: audioFile)
                    print(soundPlayer)
                    guard let player = soundPlayer else { return }
                   player.play()
                } catch let error {
                    print("Cannot play sound")
                }
            }) {
                Image(systemName: "play")
            } //: BUTTON
        }
    }
} 
Run Code Online (Sandbox Code Playgroud)

没有错误,声音文件也设置了目标成员资格。(奇怪的是,同一段代码适用于我的旧项目,但是是用 Swift + …

xcode avaudioplayer ios swiftui

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

标签 统计

ios ×2

xcode ×2

avaudioplayer ×1

combine ×1

swift ×1

swiftui ×1