Swift 3.0调用结果未使用

我正在写速度3.0

我有这个代码,这给我的警告结果的调用是未使用的

public override init(){ super.init() } public init(annotations: [MKAnnotation]){ super.init() addAnnotations(annotations: annotations) } public func setAnnotations(annotations:[MKAnnotation]){ tree = nil addAnnotations(annotations: annotations) } public func addAnnotations(annotations:[MKAnnotation]){ if tree == nil { tree = AKQuadTree() } lock.lock() for annotation in annotations { // The warning occurs at this line tree!.insertAnnotation(annotation: annotation) } lock.unlock() } 

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

 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 } 

我已经尝试了很多方法,但只是不工作,但在迅速2.2它工作正常任何想法,为什么发生这种情况?

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

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

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

  2. @discardableResult添加到该函数的声明中以使编译器无声