Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/94.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 方法和协议之间的区别?_Ios_Swift_Methods_Delegates_Protocols - Fatal编程技术网

Ios 方法和协议之间的区别?

Ios 方法和协议之间的区别?,ios,swift,methods,delegates,protocols,Ios,Swift,Methods,Delegates,Protocols,在classC中,方法和协议都可以调用函数,它们之间的区别是什么?这个方法需要更多的内存吗 我知道的一件事是,协议可以包含不同类的函数 protocol MyDelegate{ func printInA() } class ClassA: UITableViewController, MyDelegate { override func viewDidLoad() { super.viewDidLoad() } func printInA(

在classC中,方法和协议都可以调用函数,它们之间的区别是什么?这个方法需要更多的内存吗

我知道的一件事是,协议可以包含不同类的函数

protocol MyDelegate{
    func printInA()
}

class ClassA: UITableViewController, MyDelegate {

    override func viewDidLoad() {
        super.viewDidLoad()
    }

    func printInA(){
        print("I'm in ClassA")
    }
}

class ClassB: UITableViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
    }

    func pringInB(){
        print("I'm in ClassB")
    }
}


class ClassC: UITableViewController {

    var myInstance:MyDelegate = ClassA()

    override func viewDidLoad() {
        super.viewDidLoad()

        myInstance.printInA()

        let k = ClassB()
        k.pringInB()
    } 

}

根据您的描述,我可以礼貌地建议您花时间阅读Swift书籍的和。您还应该适应使用标准命名约定。类、结构、枚举和协议名称应以大写字母开头。变量、函数和大小写都以小写字母开头。很抱歉,我在简要编写示例时忽略了大写字母。