gpt4 book ai didi

ios - 我怎样才能让这两个功能很好地协同工作?

转载 作者:行者123 更新时间:2023-11-29 01:47:15 25 4
gpt4 key购买 nike

我想根据天气信息随机化天气图像背景。我想让它们一个接一个地工作;第一个函数将生成一个字符串,第二个函数使用第一个函数生成的字符串。

import UIKit

class ViewController: UIViewController, UITextFieldDelegate {

@IBOutlet weak var cityNameTextField: UITextField!
@IBOutlet weak var weatherFact: UILabel!
@IBOutlet weak var weatherImage: UIImageView!

var weather = ""

override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.

self.cityNameTextField.delegate = self
}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}

@IBAction func weatherButton(sender: UIButton) {
weatherInformation()
randomWeatherImage()
}

func showError() {
self.weatherFact.text = "we can't load the weather of \(cityNameTextField.text). please try again"
}

override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {
self.view.endEditing(true)
}

func textFieldShouldReturn(textField: UITextField) -> Bool {
self.view.endEditing(true)
return true
}

func randomWeatherImage() {

if weatherFact.text != nil {

let string = weather

let regex = NSRegularExpression(pattern: "-?[0-9]{1,3}", options: NSRegularExpressionOptions(), error: nil)

if let matches = regex?.matchesInString(string, options: NSMatchingOptions(), range: NSRange(location: 0, length: count(string))){

let degrees = matches.map { return(string as NSString).substringWithRange($0.range) }

var maxDegree = degrees[0].toInt()
var minDegree = degrees[1].toInt()
var averageWeather:Int = (maxDegree! + minDegree!) / 2

if averageWeather < 0 {
self.weatherImage.image = UIImage(named: "Cold.jpg")
}
else if averageWeather > 20 {
self.weatherImage.image = UIImage(named: "Warm.jpg")
}
else {
self.weatherImage.image = UIImage(named: "Mild.jpg")
}
}
}
}

func weatherInformation() {
let url = NSURL(string: "http://www.weather-forecast.com/locations/" + cityNameTextField.text.stringByReplacingOccurrencesOfString(" ", withString: "-") + "/forecasts/latest")

if url != nil {

let task = NSURLSession.sharedSession().dataTaskWithURL(url!){ (data, response, error) in

var urlError = false

if error == nil {

var urlContent = NSString(data: data, encoding: NSUTF8StringEncoding)
var urlContentArray = urlContent!.componentsSeparatedByString("<span class=\"phrase\">")

if urlContentArray.count > 0 {

var weatherArray = urlContentArray[1].componentsSeparatedByString("</span>")
self.weather = weatherArray[0] as! String
self.weather = self.weather.stringByReplacingOccurrencesOfString("&deg;", withString: "º")
}
else {
urlError = true
}
}
else {
urlError = true
}

dispatch_async(dispatch_get_main_queue()) {
if urlError == true {
self.showError()
}
else {
self.weatherFact.text = self.weather
}
}
}
task.resume()
}
else {
showError()
}
}
}

最佳答案

设置weatherFact.text后调用randomWeatherImage:

            dispatch_async(dispatch_get_main_queue()) {
if urlError == true {
self.showError()
}
else {
self.weatherFact.text = self.weather
self.randomWeatherImage()
}
}

关于ios - 我怎样才能让这两个功能很好地协同工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31762806/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com