意外的非 void 返回值在 void 函数在新 Swift 类

标签: Xcode ios Swift
发布时间: 2017/3/6 23:35:51
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我刚刚开始了解面向对象的和我开始写了有一种方法来计算用户的距离从一个对象的用户类。 它看起来像这样︰

class User{
    var searchRadius = Int()
    var favorites : [String] = []
    var photo = String()
    var currentLocation = CLLocation()

    func calculateDistance(location: CLLocation){
        let distance = self.currentLocation.distanceFromLocation(location)*0.000621371
        return distance //Error returns on this line
    }
}

在上面标明线,出现以下错误︰

(!) Unexpected non-void return value in void function

我曾在其他地方寻找一个解决办法,但似乎无法找到适用于此实例的任何东西。 我在其他地方,使用 distanceFromLocation 代码和它的工作好了,所以不知道在这种情况下的不同之处使用。

感谢任何帮助 !

解决方法 1:

你你方法头中缺少返回类型。

func calculateDistance(location: CLLocation) -> CLLocationDistance {

我的答案看似为劣质的重复,所以一些加法。

(包括方法,在这种情况下) 没有声明的函数返回类型为 void 的函数,称为因为︰

func f() {
    //...
}

在等效于︰

func f() -> Void {
    //...
}

通常情况下,你无法从这种类型的函数返回任何值。 但是,在 Swift ,你可以只返回一个值 (我不相信它可以称为"值"),"无效值"由 ()

func f() {
    //...
    return () //<- No error here.
}

现在,您可以了解错误消息的含义︰

void 函数中的意外非 void 返回值

您需要更改返回值,否则更改返回类型 Void 到其他一些类型。

赞助商