【问题标题】:Following iOS Swift tutorial but receiving errors遵循 iOS Swift 教程但收到错误
【发布时间】:2015-05-29 23:29:56
【问题描述】:

我正在关注视频教程,并且完全按照代码进行操作,但是我收到了教程中的人没有收到的错误。

非常感谢任何帮助。

//
//  ViewController.swift
//  IMDb Search
//
//  Created by James on 29/05/2015.
//  Copyright (c) 2015 James. All rights reserved.
//

import UIKit

class ViewController: UIViewController {

@IBOutlet var titleLabel        : UILabel
@IBOutlet var releasedLabel     : UILabel
@IBOutlet var ratingLabel       : UILabel
@IBOutlet var plotLabel         : UILabel
@IBOutlet var posterImageView   : UIImageView


override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}

@IBAction func buttonPressed(sender: UIButton)
{
    self.searchIMDb("King of Kong")
}

func searchIMDb(forContent: String)
{

    var spacelessString = forContent.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding)
    var urlPath - NSURL(string: "http://www.omdbapi.com/?t=\(spacelessString)")

    var session - NSURLSessio.sharedSession()

    var task = session.dataTaskWithURL(urlPath) {

        data, response, error -> Void in

        if (error) {

            println(error.localizedDescription)
        }

        var jsonError : NSError?

        var jsonResult - NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: &jsonError) as Dictionary<String, String>

        if (jsonError?) {

            println(jsonError!.localizedDescription)
        }

        self.titleLabel.text        = jsonResult["Title"]
        self.releasedLabel.text     = jsonResult["Released"]
        self.ratingLabel.text       = jsonResult["Rated"]
        self.plotLabel.text         = jsonResult["Plot"]
    }

    task.resume()

}

}

这是我收到的错误。

修改后出现的新错误

结尾处出现新错误

新的错误信息第一页

【问题讨论】:

  • 对于 IBOutlets 只需添加“!”最后
  • 你应该使用“=”而不是“-”
  • 喜欢这个? “@IBOutlet!”还是喜欢这个“UILabel!”?
  • UILabel!和 UIImageView!
  • 太棒了,谢谢!我进行了这些更改,但我仍然收到另一个错误。 var task = session.dataTaskWithURL(urlPath) { 给我一个错误说:可选类型'NSURL的值?未拆封;你的意思是用“!”还是“?”?

标签: ios xcode swift xcode6


【解决方案1】:

在错误处摆脱错误:

if let error = error {

    println(error.localizedDescription)
}

json 错误尝试如下:

var jsonError : NSError?
if let jsonResult = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: &jsonError) as [String:String] {
    self.titleLabel.text        = jsonResult["Title"]
    self.releasedLabel.text     = jsonResult["Released"]
    self.ratingLabel.text       = jsonResult["Rated"]
    self.plotLabel.text         = jsonResult["Plot"]
} else if let jsonError = jsonError {

        println(jsonError.localizedDescription)
}

【讨论】:

  • 应该删除哪些部分并用该代码替换?
  • 如果你不理解代码,你应该问,否则下次你需要这样做时,你会在这里发布另一个问题,要求有人再次为你修复代码
  • 看起来不错!我现在只在底部收到一个错误,说“预期声明”?
  • 而且我想我理解其中的大部分内容只是掌握了 Swift 并有点挣扎哈哈
  • 出现在哪一行?我添加了一行 var jsonError : NSError?
猜你喜欢
  • 2020-05-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-16
  • 2021-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多