【问题标题】:Binary operator '==' cannot be applied to operands of type '(UIViewController, sender: AnyObject?) -> Void' and 'String'二元运算符“==”不能应用于“(UIViewController,发件人:AnyObject?)-> Void”和“String”类型的操作数
【发布时间】:2016-07-26 16:35:10
【问题描述】:

嗨,我遇到了 swift 3 的问题。这段代码给了我一个错误。我将它从 swift 2.2 转换为 swift 3,这就是结果

几行代码是 swift 2 代码,它工作正常

第二段代码是转换后的代码,它给了我一个错误

如果我使用“=”而不是“==”它会给我这个错误

if show = "followers" {
    loadFollowers()
}

if show = "followings" {
    loadFollowings()
}

不能赋值给属性:self 是不可变的

它是导致错误的 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()
    }
}

二元运算符“==”不能应用于“(UIViewController, sender: AnyObject?) -> Void”和“String”类型的操作数

【问题讨论】:

  • 请一致地缩进和格式化您的代码。因此,阅读起来非常困难。

标签: ios swift parse-platform


【解决方案1】:

在 Swift 3 中,UIViewController 有一个名为 show 的方法,它会隐藏您的 show 变量并阻止您的视图控制器使用它。

您可以通过将show 变量的名称更改为其他名称并使用== 比较来解决此问题。

【讨论】:

  • 你能给我们举个例子吗?
【解决方案2】:

我添加了 String(),它对我有用

if String(show) == "followings"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-13
    • 1970-01-01
    相关资源
    最近更新 更多