您好,我在使用 swift 3 时遇到了问题。这段代码给我一个错误。我将它从 swift 2.2 转换为 swift 3,这就是结果
这几行代码是 swift 2 代码,它工作正常
第二位代码是转换后的代码,它给我一个错误
如果我使用“=”而不是“==”,它会给我这个错误
if show = "followers" {
loadFollowers()
}
if show = "followings" {
loadFollowings()
}
Cannot assign to property: self is immutable
它是导致错误的 if 语句
var user = String()
var show = String()
class followersViewController: UITableViewController {
var usernameArray = [String]()
var picArray = [PFFile]()
var followArray = [String]()
override func viewDidLoad() {
super.viewDidLoad()
self.navigationItem.hidesBackButton = true
let backBtn = UIBarButtonItem(image: UIImage(named: "back.png"), style: .plain, target: self, action: #selector(followersVC.back(_:)))
self.navigationItem.leftBarButtonItem = backBtn
let backSwipe = UISwipeGestureRecognizer(target: self, action: #selector(followersVC.back(_:)))
backSwipe.direction = UISwipeGestureRecognizerDirection.right
self.view.addGestureRecognizer(backSwipe)
if show == "followers" {
loadFollowers()
}
if show == "followings" {
loadFollowings()
}
}
Binary operator '==' cannot be applied to operands of type '(UIViewController, sender: AnyObject?) -> Void' and 'String'
最佳答案
在 Swift 3 中,UIViewController
有一个名为 show
的方法,它会隐藏您的 show
变量并阻止您的 View Controller 使用它。
您可以通过将 show
变量的名称更改为其他名称并使用 ==
比较来解决此问题。
关于ios - 二元运算符 '==' 不能应用于类型 '(UIViewController, sender: AnyObject?) -> Void' 和 'String' 的操作数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38595385/