Как использовать NSURL в Swift в Xcode 6.1?

Что я делаю не так? Я пытаюсь использовать API, но сначала мне нужно научиться быстро делать http-вещи.

Я использую этот код на игровой площадке:

// Playground - noun: a place where people can play

// import Cocoa - this is commented out due to "No such module 'Cocoa'"
import XCPlayground

let url = NSURL(string: "http://stackoverflow.com")
let request = NSURLRequest(URL: url)

var waiting = true

NSURLConnection.sendAsynchronousRequest(request, queue:NSOperationQueue.currentQueue() {
    response, maybeData, error in
    waiting = false
    if let data = maybeData {
        let contents = NSString(data:data, encoding:NSUTF8StringEncoding)
        println(contents)
    } else {
        println(error.localizedDescription)
    }
    }

    while(waiting) {
    NSRunLoop.currentRunLoop().runMode(NSDefaultRunLoopMode, beforeDate: NSDate())
    usleep(10)
}

и получая эти ошибки в консоли:

Playground execution failed: <EXPR>:12:11: error: use of unresolved identifier 'NSURL'
let url = NSURL(string: "http://www.stackoverflow.com")
          ^
<EXPR>:14:12: error: use of unresolved identifier 'NSURLSession'
let task = NSURLSession.sharedSession().dataTaskWithURL(url) {(data, response, error) in
           ^
<EXPR>:15:13: error: use of unresolved identifier 'NSString'
    println(NSString(data: data, encoding: NSUTF8StringEncoding))
            ^
<EXPR>:15:44: error: use of unresolved identifier 'NSUTF8StringEncoding'
    println(NSString(data: data, encoding: NSUTF8StringEncoding))

person webmagnets    schedule 13.11.2014    source источник
comment
Я предлагаю вам использовать NSUrlConnection с NSUrlConnectionDataDelegate для асинхронных вызовов. попробуйте сделать тестовый проект, так как в Playgroud может быть немного сложно, ИМХО, чтобы иметь возможность протестировать его и быть готовым к использованию в реальной среде.   -  person S.H.    schedule 13.11.2014


Ответы (1)


Вам нужно импортировать платформу Foundation, чтобы сделать эти типы доступными. Поэтому добавьте следующую строку импорта на свою игровую площадку:

import Foundation
person Vladimir    schedule 13.11.2014
comment
Спасибо. Вы также знаете, почему я не могу импортировать какао? - person webmagnets; 13.11.2014
comment
этот вопрос может помочь: stackoverflow. ком/вопросы/24099364/ - person Vladimir; 13.11.2014