RxSwift 使用按变量排序时出错<[元素]>



我有一个这样的数组:

    var arrayPoints:Variable<[Point]>?

之后,用户可以像这样对列表进行排序:

  func orderPointsByDistance(){
       self.arrayPoints?.value.sort{ $0.stringDistance.compare($1.stringDistance) == .orderedAscending  }
  }

但是我收到这个错误:

fatal error: Executing on backgound thread.
Please use MainScheduler.instance.schedule to schedule work on main thread.: file /Users/dasilvans/Desktop/GeoPlay/Pods/RxSwift/RxSwift/Rx.swift, line 23
在某种程度上,我察觉到错误,但不知道如何解决它。任何建议吗?

试试这个,我认为你阻塞了rx当这样做

let stuff = Array(self.arrayPoints?.value)
stuff.sort{ $0.stringDistance.compare($1.stringDistance) == .orderedAscending  }
self.arrayPoints?.value = stuff

还是

DispatchQueue.main.async {
}

相关内容

最新更新