gpt4 book ai didi

ios - 为什么 return 语句不会停止程序?

转载 作者:搜寻专家 更新时间:2023-10-31 22:57:32 25 4
gpt4 key购买 nike

所以我有一个功能可以检查用户是否正在查看他们的个人资料。这是我的功能。

func isUserViewCurrentUser() -> Bool {
guard let user = userDataDelegate?.userData() else {
return false
}

if user == Current.user {
print("returning false: USER IS CURRENT USER")
return false
} else {
print("returning true: USER IS NOT CURRENT USER")
return true
}

}

然后我只在 View 中运行我的函数,代码应该在我打印一些东西后停止:

override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(true)
if isUserViewCurrentUser() == true {
self.navigationItem.rightBarButtonItem = nil
self.navigationItem.leftBarButtonItem = nil
return
} else {
return
}

if let userID = userDataDelegate?.userData().userID {
retrieveFollowerNumbers(userIdentifier: userID)
return
}

}

但是我的控制台打印了“returning true: USER IS NOT CURRENT USER”一千次并且从未停止。我在我的代码中到处查看,我从未在 for 循环或任何循环中运行 isUserViewCurrentUser()

这是我的用户数据:

protocol SendUserDataDelegate {

func userData() -> User
}

didSelect TableViewCell:

if let user = filteredUsers?[indexPath.row] {
userToPass = user
profileController?.userDataDelegate = self
self.navigationController?.pushViewController(profileController!, animated: true)

}

我的 cellRowAtIndexPath 中的这段代码:

if isUserViewCurrentUser() == true {
cell.bioAndFollowStackView.addSubview(cell.followButtonOutlet)
} else {
if cell.followButtonOutlet != nil {
cell.followButtonOutlet.removeFromSuperview()
}
}

当用户将 tableview 单元格切换到另一个 viewController 时发送用户对象。每当我想获得对用户对象的引用时,我都会调用它

最佳答案

我个人看到您有 2 个具有不同引用的对象,您检查它们是否相等......即使内部数据相同,但实际引用不同。

如果是这种情况,您可以通过诸如 id 之类的唯一内容来检查它们。

如果 user.id == Current.user.id {

我不知道你想达到什么目的,但在我个人看来(没有冒犯)有些东西很臭......:)。您可以考虑更好的解决方案。

希望对你有所帮助,祝你一切顺利。

关于ios - 为什么 return 语句不会停止程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43265827/

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