实例成员'showSettings'不能用于'SettingsLauncher'类型

时间:2017-11-15 05:23:33

标签: ios swift

我正在尝试将我的按钮中的一堆代码移动到一个文件中。 这是我原来VC中的按钮

    let blackView = UIView()
    let settingsLuancher = SettingsLauncher()

    @IBAction func refreshBtnAction(_ sender: UIButton) {

      SettingsLauncher.showSettings()

    }

这是SettingsLauncher.swift,

import Foundation
import UIKit

class SettingsLauncher:NSObject {

let blackView = UIView()

func showSettings() {
    if let window = UIApplication.shared.keyWindow{
        blackView.backgroundColor = UIColor(white: 0, alpha: 0.5)
        window.addSubview(blackView)
        blackView.frame = window.frame
        blackView.alpha = 0

        blackView.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(handleDismiss)))

        UIView.animate(withDuration: 0.2, animations: {
            self.blackView.alpha = 1
        })
    }

}

func handleDismiss(){
    UIView.animate(withDuration: 0.2, animations: {
        self.blackView.alpha = 0
        // dismisses blackView
    })
}

编译一直失败,它显示: 实例成员'showSettings'不能用于'SettingsLauncher'类型;你的意思是使用这种类型的值吗?

不确定为什么会发生这种情况,感谢任何帮助。

2 个答案:

答案 0 :(得分:2)

看看SettingsLauncher.showSettings()它不是类方法它的实例方法所以它将被类实例调用而不是类本身。

如下所示

settingsLuancher.showSettings()

答案 1 :(得分:1)

您使用的是班级名称SettingsLauncher,而不是对象settingsLuancher

SettingsLauncher.showSettings()

应该是

settingsLuancher.showSettings()