在以 NSURLConnection 开头的行中,我收到错误:"无法使用@value NSURLRequest类型的参数列表调用init"
我的解析数据库中是否有错误?这是我第一次尝试使用parse(第一次尝试使用数据库编写代码,我按照教程进行编写)
这是我的代码,我的函数给了我这个错误:
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath, object: PFObject?) -> PFTableViewCell? {
var cell:CatsTableViewCell? = tableView.dequeueReusableCellWithIdentifier(cellIdentifier) as? CatsTableViewCell
if(cell == nil) {
cell = NSBundle.mainBundle().loadNibNamed("CatsTableViewCell", owner: self, options: nil)[0] as? CatsTableViewCell
}
if let pfObject = object {
cell?.catNameLabel?.text = pfObject["name"] as? String
var votes:Int? = pfObject["votes"] as? Int
if votes == nil {
votes = 0
}
cell?.catVotesLabel?.text = "\(votes!) votes"
var credit:String? = pfObject["cc_by"] as? String
if credit != nil {
cell?.catCreditLabel?.text = "\(credit!) / CC 2.0"
}
cell?.catImageView?.image = nil
if var urlString:String? = pfObject["url"] as? String {
var url:NSURL? = NSURL(string: urlString!)
if var url:NSURL? = NSURL(string: urlString!) {
var error:NSError?
var request:NSURLRequest = NSURLRequest(URL: url!, cachePolicy: NSURLRequestCachePolicy.ReturnCacheDataElseLoad, timeoutInterval: 5.0)
NSOperationQueue.mainQueue().cancelAllOperations()
NSURLConnection.sendAsynchronousRequest(request, queue: NSOperationQueue.mainQueue(), completionHandler: {
(response:NSURLResponse!, imageData:NSData!, error:NSError!) -> Void in
cell?.catImageView?.image = UIImage(data: imageData)
})
}
}
}
return cell }
答案 0 :(得分:0)
__construct()
的签名是
NSURLConnection.sendAsynchronousRequest
所有返回参数都是选项。
顺便说一下:可选绑定行中的注释令人困惑。如果绑定成功,则该值是非可选的。在大多数情况下使用class func sendAsynchronousRequest(_ request: NSURLRequest,
queue queue: NSOperationQueue,
completionHandler handler: (NSURLResponse?,
NSData?,
NSError?) -> Void)
而不是let
,例如
var
最后,不要在if let urlString = pfObject["url"] as? String {
if let url = NSURL(string: urlString) {
var error: NSError?
let request = NSURLRequest(URL: url, cachePolicy: NSURLRequestCachePolicy.ReturnCacheDataElseLoad, timeoutInterval: 5.0)
...
中调用异步任务。