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

标签 ios swift parse-platform

您好,我在使用 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/

相关文章:

ios - Swift - 无法找出崩溃的因素

ios - iPhone 上 Watch 应用上的 watchOS 应用图标为空白

swift - 使用子类时如何更新解析记录

swift - 在 Swift 中,如何检查 Parse 列中的指针是否为空

ios - 将唯一值添加到解析服务器中的数组(swift 3)

iphone - 圆形蒙版效果

ios - 数组 objectAtIndex <huge number> 上的 RangeException #Core Data

ios - 在 webView 中渲染本地 PDF 会截断右侧

ios - 将 findObjectsInBackgroundWithBlock 的结果传递到变量中

ios - AVAudioSession用于音频视频通话