Ios 无法转换LazyMapRandomAccessCollection类型的值
我正在尝试将一个用Swift 2编写的旧应用程序更新为最新功能,最重要的是,转换为Swift 3,以便为iOS 11和Swift 4做准备(即使已经很晚了) 翻译过程结束后,我还有一些错误,但这里有一个我无法修复 以下是错误,来自我的刷新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
收藏夹方法:
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