2015-08-03 63 views
0

我是很新的雨燕与合作,有一个问题: 我有两个班在我WatchKit应用。不能援引“setScore”类型的参数列表“(智力)”

第1类:

func setScore(inputScore: Int) { 
    scoreLabel.setText(String(inputScore)) 
} 

...和2类应该有机会获得本功能:

var countNumber = 0 
... 

self.presentControllerWithName("scorePage", context: self) 
      scorePage.setScore(countNumber) 

但我总是得到一个错误:cannot invoke 'setScore' with an argument list of type '(Int)'

我不知道如何解决这一问题,这将是巨大的,如果有人能帮助我:) 感谢

+0

假如你初始化之前的2 Class类? – CarlosGz

+0

我有:class class2:WKInterfaceController {...' – user5185447

+0

“scorePage”var已被正确初始化?你可以通过它访问其他类的方法吗? – CarlosGz

回答

-1

我不知道什么是你究竟想做,但我相信你想从一个WKInterfaceController到其他WKInterfaceController传递数据,因此你可以使用上下文:

self.presentControllerWithName(“scorePage”,语境:countNumber )

一旦你在接收器WKInterfaceController你应该得到countNumber重写awakeWithContext:FUNC(上下文VAR应该有现在countNumber值),然后你可以设置比分: self.setScore(上下文)

PS不要忘了从AnyObject以“铸造”的背景值,为int

实施例使用的OBJ-C和一个NSNumber代替INT:

在原点类:

[self pushControllerWithName:@"scorePage" context:countNumber]; 
在目的地类

- (void)awakeWithContext:(id)context { 
    [super awakeWithContext:context]; 

    if ([context isKindOfClass:[NSNumber class]]) { 
     NSNumber *num = (NSNumber *)context; 
     [self setScore:num]; 
    } 

} 
+0

我是试图用你提供的少量信息来帮助你,为什么你把我的答案放错了? – CarlosGz

+0

不,我没有把它投下来 – user5185447

+0

对不起,所以希望我的回答可以帮助你 – CarlosGz

0

这有点一射在黑暗中....

使用setXXX如在从一个Objective-C类继承的类的功能名可能会有问题,因为它看起来像Objective-C属性的setter。

事实上,我会重构这个趁雨燕例如功能

class MyClass 
{ 
    var score: Int = 0 
    { 
     didSet 
     { 
      scoreLabel.setText(String(score)) 
     } 
    } 
    // everything else 
} 

,并调用这样

self.presentControllerWithName("scorePage", context: self) 
scorePage.score = countNumber 
相关问题