gpt4 book ai didi

swift - 使用 RxSwift 和 RxRealm 对成员 'items(cellIdentifier:celltype:)' 的引用不明确

转载 作者:行者123 更新时间:2023-11-30 10:40:57 26 4
gpt4 key购买 nike

我在 ViewController 中有一个 CollectionView,我试图从 Realm 获取对象列表并使用 RxSwift 将其绑定(bind)到 CollectionView。

问题是我收到错误:

"Ambiguous reference to member 'items(cellIdentifier:celltype:)'"

在行中: .bind(to: collection.rx.items(cellIdentifier ...)

这是代码:

import UIKit
import RxRealm
import RxSwift
import RxCocoa

class MyListViewController: UIViewController {

var myList: MyList?

private var collection: UICollectionView?

{...}

private func loadMyList() {
let myList = retrieveMyListFromDb()
guard
let list = myList,
let collection = collection
else { return }

let disposeBag = DisposeBag()

Observable.from(list)
.bind(
to: collection.rx.items(
cellIdentifier: HomeMovieCollectionViewCell.identifier,
cellType: HomeMovieCollectionViewCell.self)
) { (row, element, cell) in

}
.disposed(by: disposeBag)
}

private func retrieveMyListFromDb() -> MyList? {
return RealmManager().objects(MyList.self)?.filter {
$0.userId == 0
}.first
}

这是 MyList 代码:

import Foundation
import Realm
import RealmSwift

@objcMembers
class MyList: Object {
dynamic var userId: Int = 0
var movies = List<Movie>()

public override static func primaryKey() -> String? { return "userId" }
}

最佳答案

感谢用户 Daniel T。我意识到问题是 Collection View 的 rx.items 函数需要一个项目数组或一个列表,而我将它与一个对象一起使用。我收到的错误根本无法描述正在发生的事情。

解决方案是

 Observable.collection(from: list.movies)
.bind(to: collection.rx.items(
cellIdentifier: HomeMovieCollectionViewCell.identifier,
cellType: HomeMovieCollectionViewCell.self)
) { (row, element, cell) in

}
.disposed(by: disposeBag)

关于swift - 使用 RxSwift 和 RxRealm 对成员 'items(cellIdentifier:celltype:)' 的引用不明确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56808864/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com