自定义委托在点击按钮时导致错误
Custom Delegate causing errors on button tap
我正在 swift 上使用 MVVM 架构开发一个简单的 tableView
项目。但是,当我点击该 tableView 上的按钮时,出现如下错误:
线程1:同时访问0x7faf490331c8,但修改需要独占访问
我定义了这样一个模型
struct Person{
var name: String
var username : String
var currentFollowing : Bool
let image : UIImage?
}
有自定义委托协议
protocol PersonFollowingTableViewCellDelegate : AnyObject {
func PersonFollowingTableViewCell( _ cell: PersonFollowingTableViewCell, didTapWith : Person)
}
我正尝试使用它来配置按钮
@objc private func didTapButton(){
let defaultPerson = Person(name: "default", username: "default", currentFollowing: true, image: nil)
person?.currentFollowing = !(person?.currentFollowing ?? true)
delegate?.PersonFollowingTableViewCell(self, didTapWith: person ?? defaultPerson )
prepareForReuse()
configure(with: person ?? defaultPerson)
}
ViewController中的回调方法在这里
extension ViewController : PersonFollowingTableViewCellDelegate{
func PersonFollowingTableViewCell(_ cell: PersonFollowingTableViewCell, didTapWith array: Person) {
return
}
修改你的@objc private func didTapButton()。
而不是
person?.currentFollowing = !(person?.currentFollowing ?? true)
制作
let currentFollowing = !(person?.currentFollowing ?? true)
person?.currentFollowing = currentFollowing
我正在 swift 上使用 MVVM 架构开发一个简单的 tableView
项目。但是,当我点击该 tableView 上的按钮时,出现如下错误:
线程1:同时访问0x7faf490331c8,但修改需要独占访问
我定义了这样一个模型
struct Person{
var name: String
var username : String
var currentFollowing : Bool
let image : UIImage?
}
有自定义委托协议
protocol PersonFollowingTableViewCellDelegate : AnyObject {
func PersonFollowingTableViewCell( _ cell: PersonFollowingTableViewCell, didTapWith : Person)
}
我正尝试使用它来配置按钮
@objc private func didTapButton(){
let defaultPerson = Person(name: "default", username: "default", currentFollowing: true, image: nil)
person?.currentFollowing = !(person?.currentFollowing ?? true)
delegate?.PersonFollowingTableViewCell(self, didTapWith: person ?? defaultPerson )
prepareForReuse()
configure(with: person ?? defaultPerson)
}
ViewController中的回调方法在这里
extension ViewController : PersonFollowingTableViewCellDelegate{
func PersonFollowingTableViewCell(_ cell: PersonFollowingTableViewCell, didTapWith array: Person) {
return
}
修改你的@objc private func didTapButton()。 而不是
person?.currentFollowing = !(person?.currentFollowing ?? true)
制作
let currentFollowing = !(person?.currentFollowing ?? true)
person?.currentFollowing = currentFollowing