2017-03-13 163 views
1

我想一个子类对象的属性分配为另一个子类的功能的输入参数的函数的输入参数,却遇到了一个实例成员问题:分配对象属性为另一个对象

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

我想你失去了一些东西:)在p11类中的方法interact应该是:

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

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

+0

糟糕,我的错!结果非常好,谢谢! – Ramener

相关问题