将对象属性指定为另一个对象的函数的输入参数

时间:2017-03-13 07:16:54

标签: swift function class properties

我正在尝试将一个子类对象的属性指定为另一个子类的函数的输入参数,但遇到了实例成员问题:

import UIKit

class p1 {
    var quality1 = 0
    var quality2 = 0
}
class p11 : p1 {
    func interact(class: p12) {
        quality1 += p12.quality2 //error: Instance member 'quality2' cannot be used on type 'p12'
    }
}
class p12 : p1 {
    func interact(class: p11) {   
    }
}
var p11a = p11()
p11a.quality1 = 100
p11a.quality2 = 100
var p12a = p12()
p12a.quality1 = 120
p12a.quality2 = 80

如何通过函数解决这个问题,以便一个对象的属性受另一个对象属性的影响?

1 个答案:

答案 0 :(得分:1)

我认为你错过了什么:) interact类中的方法p11应该是:

func interact(parameter: p12) {
    quality1 += parameter.quality2 // changing 'p12' to 'parameter' (instead of 'class')
}

您应该通过传递的参数调用quality2属性,而不是通过类名本身。