Форум программистов, компьютерный форум CyberForum.ru

Swift

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
Eserchik
0 / 0 / 0
Регистрация: 04.06.2012
Сообщений: 21
#1

Как из session.dataTaskWithRequest вернуть ответ в основной код - Swift

23.09.2014, 15:23. Просмотров 1213. Ответов 0
Метки нет (Все метки)

Помогите вернуть ответ сервера в основной код


Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
    var accessToken: String!
 
 
      @IBAction func sendData(sender: UIButton) {
 
       var request = NSMutableURLRequest(URL: NSURL(string: "http://server.ru/token"))
        var session = NSURLSession.sharedSession()
        request.HTTPMethod = "POST"
        var params = "grant_type=password&username=installer&password=123985"
        
        var err: NSError?
        
        request.HTTPBody = params.dataUsingEncoding(NSUTF8StringEncoding);
        request.addValue("application/x-www-form-urlencoded", forHTTPHeaderField: "Content-Type")
        request.addValue("UTF-8", forHTTPHeaderField: "charset")
        
        var task = session.dataTaskWithRequest(request, completionHandler: {data, response, error -> Void in
           
 
            let json: AnyObject! = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions(0), error: &err)
            
            
            if(err != nil) {
                println(err!.localizedDescription)
                let jsonStr = NSString(data: data, encoding: NSUTF8StringEncoding)
                println("Error could not parse JSON: '\(jsonStr)'")
            }
 
            
            if let json = json as? Dictionary<String, AnyObject> {
                if let success = json["access_token"] as AnyObject? as? String { // Currently in beta 5 there is a bug that forces us to cast to AnyObject? first
                    
                    
                    //Как вернуть эту переменную в основной код? Сейчас self.accessToken равен null, хотя в success есть данные
                    self.accessToken=success
                  
              
                    
                }
            }
            
            
            
            
            
            })
        
        task.resume()
 
 
        //Ответ от сервера
        let myAlert = UIAlertView(title: "Данные",
            message: "Получен ключ:\(self.accessToken)",
            delegate: nil, cancelButtonTitle: "ок")
        myAlert.show()
 
 
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru