Swift 3.0呼叫结果未使用

时间:2016-07-04 22:04:36

标签: ios swift swift3

我在swift 3.0中写作

我有这个代码,它给我一个未使用呼叫的警告结果

func insertAnnotation(annotation:MKAnnotation) -> Bool {
        return insertAnnotation(annotation: annotation, toNode:rootNode!)
    }

    func insertAnnotation(annotation:MKAnnotation, toNode node:AKQuadTreeNode) -> Bool {

        if !AKQuadTreeNode.AKBoundingBoxContainsCoordinate(box: node.boundingBox!, coordinate: annotation.coordinate) {
            return false
        }

        if node.count < nodeCapacity {
            node.annotations.append(annotation)
            node.count += 1
            return true
        }

        if node.isLeaf() {
            node.subdivide()
        }

        if insertAnnotation(annotation: annotation, toNode:node.northEast!) {
            return true
        }

        if insertAnnotation(annotation: annotation, toNode:node.northWest!) {
            return true
        }

        if insertAnnotation(annotation: annotation, toNode:node.southEast!) {
            return true
        }

        if insertAnnotation(annotation: annotation, toNode:node.southWest!) {
            return true
        }


        return false

    }

我试过在另一个类中使用这个方法,但它仍然给我错误,insertAnnotation的代码在上面

stack()

我尝试了很多方法,但只是不起作用,但在swift 2.2中它可以解决为什么会发生这种情况?

1 个答案:

答案 0 :(得分:411)

您遇到此问题,因为您正在调用的函数返回一个值,但您忽略了结果。

有两种方法可以解决这个问题:

  1. 通过在函数调用前添加_ =来忽略结果

  2. @discardableResult添加到函数声明中以使编译器静音