@Kennedy_SK

Наследование в Swift. Как вывести данные на форму?

Доброго времени суток!
Имеется 2 класса, мне надо что бы в ViewController class(main class) - записать координаты в переменные lat и log, что бы их использовать в других классах (как пример, создать класс с глобальными переменными и туда записывать все переменные), и что бы я мог к ним обращаться с других классов.

Во-втором классе, Json class(Json-class), мне нужно результат парсинга, в данном примере data - записать в label на main классе, но бьет критическую ошибку:
fatal error: unexpectedly found nil while unwrapping an Optional value
Так же, нужно записать значение data - что бы я смогу обращаться с других классов (можно тот же класс с глобальными переменными использовать)

Подскажите как мне все это реализовать
Заранее спасибо!)

import UIKit
import CoreLocation
 
//main class
 
class ViewController: UIViewController, CLLocationManagerDelegate{
   
    
    @IBOutlet weak var labl: UILabel!
 
    @IBAction func btn(sender: AnyObject) {
        labl.text = Json().mess
    }
    var locationManager = CLLocationManager()
    
    var lat: Double?
    var log: Double?
 
 
    override func viewDidLoad() {
        super.viewDidLoad()
        locationManager.delegate = self
        locationManager.desiredAccuracy = kCLLocationAccuracyBest
        locationManager.requestWhenInUseAuthorization()
        locationManager.startUpdatingLocation()
        Json().Pars()
        }
    func locationManager(manager: CLLocationManager!, didUpdateLocations locations: [AnyObject]!) {
        var userLocation:CLLocation = locations [0] as! CLLocation
        
        locationManager.stopUpdatingLocation()
        let location = CLLocationCoordinate2D (latitude: userLocation.coordinate.latitude, longitude: userLocation.coordinate.longitude)
        println(userLocation.coordinate.longitude)
        println(userLocation.coordinate.latitude)
        lat = userLocation.coordinate.latitude
        log = userLocation.coordinate.longitude
    }
    
    func locationManager(manager: CLLocationManager!, didFailWithError error: NSError!) {
        println("error")
    }
 
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }
 
 
}


import Foundation
 
//Json-class
class Json{
    func Pars  (){
        let url = NSURL(string: "http://my.url.com")
        let task = NSURLSession.sharedSession().dataTaskWithURL(url!, completionHandler: {data, response, error -> Void in
        if (error != nil){
            println(error.localizedDescription)
        }
        var err: NSError?
        
        let parseObj: AnyObject? = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.AllowFragments, error: &err)
        
        if let json = parseObj as? NSDictionary{
            if let response = json["response"] as? NSDictionary{
               f let obj = response["Object"] as? NSDictionary{
                    if let data = obj["data"] as? NSString {
                       println(data)//вывод данных
                       ViewController().labl.text = data //на этом моменте бьет критическую ошибку fatal error: unexpectedly found nil while unwrapping an Optional value
 
           
}
}
}
        }
           
    })
 
        task.resume()
    }
}
  • Вопрос задан
  • 774 просмотра
Пригласить эксперта
Ответы на вопрос 1
@shomishinec
Software Developer
Наводящий вопрос:
ViewController() что это делает ?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы