无法使用“(Int)”类型的参数列表调用 'setScore'
cannot invoke 'setScore' with an argument list of type '(Int)'
我对使用 Swift 还很陌生,遇到了一个问题:
我的 WatchKit 应用程序中有两个 类。
Class 1:
func setScore(inputScore: Int) {
scoreLabel.setText(String(inputScore))
}
... 和 Class 2 应该可以访问此函数:
var countNumber = 0
...
self.presentControllerWithName("scorePage", context: self)
scorePage.setScore(countNumber)
但我总是得到一个错误:cannot invoke 'setScore' with an argument list of type '(Int)'
我不知道如何解决这个问题,如果有人能帮助我就太好了:)
谢谢
我不确定你到底想做什么,但我相信你想将数据从一个 WKInterfaceController 传递到另一个 WKInterfaceController,所以你可以使用上下文:
self.presentControllerWithName("scorePage", 上下文: countNumber)
一旦你在接收器 WKInterfaceController 中,你应该收到覆盖 awakeWithContext 的 countNumber:func(上下文变量现在应该有 countNumber 值)然后你可以设置分数:
self.setScore(上下文)
PS 不要忘记 "cast" 上下文值从 AnyObject 到 int
使用 Obj-C 和 NSNumber 而不是 int 的示例:
在原点class:
[self pushControllerWithName:@"scorePage" context:countNumber];
目的地class:
- (void)awakeWithContext:(id)context {
[super awakeWithContext:context];
if ([context isKindOfClass:[NSNumber class]]) {
NSNumber *num = (NSNumber *)context;
[self setScore:num];
}
}
这有点摸不着头脑....
在继承自 Objective-C class 的 class 中使用 setXXX
作为函数名称可能会出现问题,因为它看起来像 setter一个 Objective-C 属性。
事实上,我会重构它以利用 Swift 功能,例如
class MyClass
{
var score: Int = 0
{
didSet
{
scoreLabel.setText(String(score))
}
}
// everything else
}
并像这样调用
self.presentControllerWithName("scorePage", context: self)
scorePage.score = countNumber
我对使用 Swift 还很陌生,遇到了一个问题: 我的 WatchKit 应用程序中有两个 类。
Class 1:
func setScore(inputScore: Int) {
scoreLabel.setText(String(inputScore))
}
... 和 Class 2 应该可以访问此函数:
var countNumber = 0
...
self.presentControllerWithName("scorePage", context: self)
scorePage.setScore(countNumber)
但我总是得到一个错误:cannot invoke 'setScore' with an argument list of type '(Int)'
我不知道如何解决这个问题,如果有人能帮助我就太好了:) 谢谢
我不确定你到底想做什么,但我相信你想将数据从一个 WKInterfaceController 传递到另一个 WKInterfaceController,所以你可以使用上下文:
self.presentControllerWithName("scorePage", 上下文: countNumber)
一旦你在接收器 WKInterfaceController 中,你应该收到覆盖 awakeWithContext 的 countNumber:func(上下文变量现在应该有 countNumber 值)然后你可以设置分数: self.setScore(上下文)
PS 不要忘记 "cast" 上下文值从 AnyObject 到 int
使用 Obj-C 和 NSNumber 而不是 int 的示例:
在原点class:
[self pushControllerWithName:@"scorePage" context:countNumber];
目的地class:
- (void)awakeWithContext:(id)context {
[super awakeWithContext:context];
if ([context isKindOfClass:[NSNumber class]]) {
NSNumber *num = (NSNumber *)context;
[self setScore:num];
}
}
这有点摸不着头脑....
在继承自 Objective-C class 的 class 中使用 setXXX
作为函数名称可能会出现问题,因为它看起来像 setter一个 Objective-C 属性。
事实上,我会重构它以利用 Swift 功能,例如
class MyClass
{
var score: Int = 0
{
didSet
{
scoreLabel.setText(String(score))
}
}
// everything else
}
并像这样调用
self.presentControllerWithName("scorePage", context: self)
scorePage.score = countNumber