Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 如何在iPhone开发中添加学位符号作为UILabel的一部分?_Swift_Api_Uilabel_Openweathermap - Fatal编程技术网

Swift 如何在iPhone开发中添加学位符号作为UILabel的一部分?

Swift 如何在iPhone开发中添加学位符号作为UILabel的一部分?,swift,api,uilabel,openweathermap,Swift,Api,Uilabel,Openweathermap,我已将学位符号添加到我的UILabel中,但当应用程序运行时,它将消失。我正在创建一个天气应用程序,因此正确格式化非常重要。 这是我加载ViewController后的代码 override func viewDidLoad() { super.viewDidLoad() cityLabel.text = city userEnteredNewCityName(city: city) // Do any additional setup after loadin

我已将学位符号添加到我的UILabel中,但当应用程序运行时,它将消失。我正在创建一个天气应用程序,因此正确格式化非常重要。 这是我加载ViewController后的代码

 override func viewDidLoad() {
    super.viewDidLoad()
    cityLabel.text = city
    userEnteredNewCityName(city: city)
    // Do any additional setup after loading the view.
}
以下是更新ViewController的代码

func updateWeatherData(json: JSON) {
    if let tempResult = json["main"]["temp"].double {
        weatherDataModel.temperature = Int(tempResult - 273)
        weatherDataModel.city = json["name"].stringValue
        weatherDataModel.condition = json["weather"][0]["id"].intValue
        weatherDataModel.weatherIconName = weatherDataModel.updateWeathericon(condition: weatherDataModel.condition)

        updateUIWithWeatherData()
    } else {
        cityLabel.text = "No data available"
    }

}

func userEnteredNewCityName(city: String){
    let params : [String : String] = ["q" : city, "appid" : APP_ID]
    getWeatherData(url: WEATHER_URL, parameters: params)
}

 //Write the updateUIWithWeatherData method here:


func updateUIWithWeatherData() {
    cityLabel.text = weatherDataModel.city
    temperatureLabel.text = String(weatherDataModel.temperature)
    weatherIcon.image = UIImage(named: weatherDataModel.weatherIconName)
}
任何帮助都将不胜感激。

理想情况下,使用测量格式:

无需转换为Int。格式化程序将处理十进制数字的显示

作为奖励,您不必自己进行开尔文到摄氏度的转换:

let measurementInKelvin = Measurement(value: weatherDataModel.temperature, unit: UnitTemperature.kelvin)
let measurement = measurementInKelvin.converted(to: .celsius)
理想情况下,使用MeasurementFormatter:

无需转换为Int。格式化程序将处理十进制数字的显示

作为奖励,您不必自己进行开尔文到摄氏度的转换:

let measurementInKelvin = Measurement(value: weatherDataModel.temperature, unit: UnitTemperature.kelvin)
let measurement = measurementInKelvin.converted(to: .celsius)

如果您正在更新此代码行中的临时标签:

temperatureLabel.text = String(weatherDataModel.temperature)
您只需将一个数字转换为一个字符串,覆盖以前插入到标签中的所有内容。如果要添加学位符号,只需执行以下操作:

temperatureLabel.text = String(weatherDataModel.temperature) + "°"
现在,如果是event if,这是最简单的方法,但不是更可靠,因为你没有考虑用户的语言环境,为了更好地理解度量单位,比如在美国,他们使用华氏温度。 如果您使用MeasurementFormatter或check创建字符串,那么这样做会更好。检查温度单位。


如果您正在更新此代码行中的临时标签:

temperatureLabel.text = String(weatherDataModel.temperature)
您只需将一个数字转换为一个字符串,覆盖以前插入到标签中的所有内容。如果要添加学位符号,只需执行以下操作:

temperatureLabel.text = String(weatherDataModel.temperature) + "°"
现在,如果是event if,这是最简单的方法,但不是更可靠,因为你没有考虑用户的语言环境,为了更好地理解度量单位,比如在美国,他们使用华氏温度。 如果您使用MeasurementFormatter或check创建字符串,那么这样做会更好。检查温度单位。


请提供设置学位标签文本的代码部分。您可能应该使用MeasurementFormatter。我仍然没有看到添加学位符号。但是你可以使用temperatureLabel.text=StringweatherDataModel.temperature+°我在情节提要中添加了度符号。@AltBrian我就是这么想的。这很好。但是,当您设置temperatureLabel.text=StringweatherDataModel.temperature时,您正在覆盖之前的文本。因此,您需要像我所说的那样将字符串附加为+°。请提供设置学位标签文本的代码部分。您可能应该使用MeasurementFormatter。我仍然没有看到添加学位符号。但是你可以使用temperatureLabel.text=StringweatherDataModel.temperature+°我在情节提要中添加了度符号。@AltBrian我就是这么想的。这很好。但是,当您设置temperatureLabel.text=StringweatherDataModel.temperature时,您正在覆盖之前的文本。所以你需要像我说的那样,在字符串后面加上+°。