【发布时间】:2015-08-21 20:17:58
【问题描述】:
我将一些 Objective-c 代码(进行了一些更改)移植到 swift 中,并且其中没有“私有”的链接可以工作,而另一个则不能。这就是我所拥有的:
import Cocoa
class MasterViewController: NSViewController, NSURLSessionDataDelegate {
var session: NSURLSession!
var courses: JSON!
override func viewDidLoad() {
super.viewDidLoad()
let config: NSURLSessionConfiguration? =
NSURLSessionConfiguration.defaultSessionConfiguration()
session = NSURLSession(configuration: config, delegate: self, delegateQueue: nil )
fetchFeed()
}
func fetchFeed() {
let requestString: String = "https://bookapi.bignerdranch.com/courses.json"
// let requestString: String = "https://bookapi.bignerdranch.com/private/courses.json"
if let url: NSURL? = NSURL(string: requestString) {
let request: NSURLRequest = NSURLRequest(URL: url!)
let dataTask : NSURLSessionDataTask = session.dataTaskWithRequest(request, completionHandler: {(data, response, error) in
var jsonObject: [JSON] = JSON(data: data).arrayValue
self.courses = JSON(data: data)
dispatch_async(dispatch_get_main_queue(), { _ in
println( self.courses?.debugDescription )
})
});
dataTask.resume()
}
}
func URLSession(session: NSURLSession, didReceiveChallenge challenge: NSURLAuthenticationChallenge, completionHandler: (NSURLSessionAuthChallengeDisposition, NSURLCredential!) -> Void) {
var userIdString: String = "BigNerdRanch"
var passwordString: String = "AchieveNerdvana"
println( "Received challenge, responding with UID: \(userIdString) PWD: \(passwordString)")
var cred: NSURLCredential = NSURLCredential(user: userIdString,
password: passwordString,
persistence: NSURLCredentialPersistence.ForSession)
completionHandler( NSURLSessionAuthChallengeDisposition.UseCredential, cred )
}
}
有什么想法吗? 谢谢
【问题讨论】:
-
代码有什么问题?