"呼叫中的额外争议"调用WKInterfaceLabel.setText时出错

时间:2018-02-23 17:13:35

标签: swift watchkit

我目前正在尝试为一个项目制作一个高度计,但我对这个"呼叫中的额外争论"错误,经过大约4个小时的研究后,我找不到任何特别的帮助。

然而,我确实看到这个错误可能会产生误导,并且电话没有问题,而且这是其他问题。我和我的同行都对这个错误感到难过,并转过身来看看我们是否可以在这里得到帮助。

我从Joel Crabb(http://joelcrabb.com/?p=289)得到了我的基本代码,在更新了一些过时的代码之后它就像这样结束了。

以下是我的界面控制器

//
//  AltitudeInterfaceController.swift
//  lets learn WatchKit Extension
//
//  Created by M.McCoy on 1/24/18.
//  Copyright © 2018 M.McCoy All rights reserved.
//

import WatchKit
import Foundation
import CoreMotion

class AltitudeInterfaceController: WKInterfaceController {


    //source: Joel Crabb: http://joelcrabb.com/?p=289

    @IBOutlet var altitudeLabel: WKInterfaceLabel!
    lazy var altimeter = CMAltimeter()
    lazy var queue = OperationQueue()
    var relativeAltitude = 0
    @IBAction func startButton(){
        if CMAltimeter.isRelativeAltitudeAvailable()
        {

            altimeter.startRelativeAltitudeUpdates(to: queue, withHandler: {(data: CMAltitudeData?, error: NSError?) in

                //Needed to refresh the screen from inside the closure
                DispatchQueue.main.async {
                    self.altitudeLabel.setText("%.2f feet",
                      ((3.28 * //Extra arguement in call error here.
                        ((data?.relativeAltitude.doubleValue))!)))
                };
        })
         }   else {
                 self.altitudeLabel.setText("No barometer available")
         }
       }

提前感谢您帮助和解释我需要做些什么来解决此错误。

1 个答案:

答案 0 :(得分:0)

SetText只有一个参数,它是字符串。我知道你想传递格式号的双值,但这不是那种方式。

试试这个:

self.altitudeLabel.setText(String(format:"average temp. = %.2f", 3.28 *data?.relativeAltitude.doubleValue!))