Ios 无法转换LazyMapRandomAccessCollection类型的值

Ios 无法转换LazyMapRandomAccessCollection类型的值,ios,swift3,realm,Ios,Swift3,Realm,我正在尝试将一个用Swift 2编写的旧应用程序更新为最新功能,最重要的是,转换为Swift 3,以便为iOS 11和Swift 4做准备(即使已经很晚了) 翻译过程结束后,我还有一些错误,但这里有一个我无法修复 以下是错误,来自我的刷新收藏夹方法: fileprivate func checkFavorites() { if !DataUtils.isBackgroundRefreshInProgress() { let ids = favoritesTableViewC

我正在尝试将一个用Swift 2编写的旧应用程序更新为最新功能,最重要的是,转换为Swift 3,以便为iOS 11和Swift 4做准备(即使已经很晚了)

翻译过程结束后,我还有一些错误,但这里有一个我无法修复

以下是错误,来自我的刷新
收藏夹
方法:

fileprivate func checkFavorites() { 
    if !DataUtils.isBackgroundRefreshInProgress() {
      let ids = favoritesTableViewController!.favoriteCityList?.map({ $0.id })
      if let ids = ids, ids.count > 0 {
          DataUtils.refreshCity(ids) { () -> Void in
              self.favoritesTableViewController.refresh()
          })
      }
    }
  }
以下是一些关于变量的原型和信息:

var favoriteCityList: Results<City>?
这是我在这一行遇到的错误:

DataUtils.refreshCity(ids) { () -> Void in
无法将类型为“LazyMapRandomAccessCollection”的值转换为预期的元素类型Int


当我使用
列表
结果
容器时,我应该在原型方法中更改什么?

您只需要将
结果
转换为
数组
,这样
映射
操作的结果也将是一个数组,而不是
LazyMapRandomAccessCollection

由于
Results
序列,因此可以使用接受
序列的数组初始值设定项从结果集合创建数组


让id=Array(favoritesTableViewController!.favoriteCityList?).map({$0.id})
您只需将
结果
转换为
数组
,这样
映射
操作的结果也将是一个数组,而不是
LazymaprandoAccessCollection

由于
Results
序列,因此可以使用接受
序列的数组初始值设定项从结果集合创建数组


让id=Array(favoritesTableViewController!.favoriteCityList?).map({$0.id})

如果没有更多的上下文,很难给出准确的答案。
收藏夹城市列表的类型是什么?
id
应该是一个
Int
ids
一个
[Int]
?id是一个Int,所以ids是一个[Int],但是当我在结果类型上使用map时,它会把一切都弄乱,并且如果没有更多的上下文,我再也无法识别类型,很难给出准确的答案。
收藏夹城市列表的类型是什么?
id
应该是一个
Int
ids
一个
[Int]
?id是一个Int,所以ids是一个[Int],但当我在结果类型上使用map时,它会把一切都搞乱,我无法再完美地识别类型。正是我想要的。为什么我总是想着复杂的…完美。正是我想要的。为什么我总是想着复杂的。。。
DataUtils.refreshCity(ids) { () -> Void in