Я новичок в быстром кодировании, поэтому большая часть моего кода - это «так я нашел его в Интернете».Функции делегата не называются - NSURLConnection
Я пытаюсь отправить запрос HTTP GET, а затем работать с ним. Для этого я использую NSURLConnection
. У меня 2 быстрых файлов в моем Xcode проекте (это стремительный проект консоли, а не площадка), один является основной и вторым содержит мой класс, я хотел бы использовать для делегирования:
import Foundation
class Remote: NSObject, NSURLConnectionDelegate {
var data = NSMutableData()
func connect() {
var url = NSURL(string: "https://www.google.com")
var request = NSURLRequest(URL: url!)
NSLog("Is%@ main thread", NSThread.isMainThread() ? "" : " NOT");
var conn = NSURLConnection(request: request, delegate: self, startImmediately: false)
conn?.scheduleInRunLoop(NSRunLoop.mainRunLoop(), forMode: NSDefaultRunLoopMode)
conn?.start()
sleep(2)
}
func connection(didReceiveResponse: NSURLConnection!, didReceiveResponse response: NSURLResponse!) {
println("didReceiveResponse")
}
func connection(connection: NSURLConnection!, didReceiveData conData: NSData!) {
println("didReceiveData")
}
func connectionDidFinishLoading(connection: NSURLConnection!) {
println("DidFinishLoading")
}
deinit {
println("deiniting")
}
}
Вот мое главное быстро код:
import Foundation
var xxx = Remote()
xxx.connect()
sleep(10)
sleep(2)
Когда я установить точки останова на каждом println
в функции делегата, они никогда не попали. Выполнение выполняется из основного потока в соответствии с результатом NSLog
.
В отладчике я вижу, что данные отправляются и принимаются по сети, но я никогда не получаю никакого вывода. Я видел много подобных вопросов здесь, но мне ничего не помогло.
Что я делаю неправильно?
Это программа командной строки? Затем вам нужно добавить runloop, см., Например, [CFRunLoop в программе Swift Command Line] (http://stackoverflow.com/questions/25126471/cfrunloop-in-swift-command-line-program). –