2015-08-03 65 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 
相關問題