Swift 3 - 无法将类型 'String?' 的值分配给类型 'NSDate' MasterViewController.swift

标签 swift

它发生在关于 iOS split view 的示例源代码中。

我想将 URL 信息发送到 detailViewController,因此首先定义名为 siteAddresses 类型的变量 String

var siteAddresses : [String]?

然后在 siteAddresses 数组中输入值:

siteAddresses = ["www.google.com", "www.apple.com"]

并定义函数 prepare for segue like

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if segue.identifier == "showDetail" {
        if let indexPath = self.tableView.indexPathForSelectedRow {
            let urlString = siteAddresses?[indexPath.row]
            let controller = (segue.destination as! UINavigationController).topViewController as! DetailViewController
            controller.detailItem = urlString
            controller.navigationItem.leftBarButtonItem = self.splitViewController?.displayModeButtonItem
            controller.navigationItem.leftItemsSupplementBackButton = true
        }
    }
}

但是

controller.detailItem = urlString

这部分在运行时会出现问题。

错误是:

"Cannot assign value of type 'String?' to type 'NSDate?'"

//编辑

DetailViewController(接口(interface)):

internal var detailItem: NSDate? { get set }

声明:

 func configureView() {
        // Update the user interface for the detail item.
        if let detail = detailItem {

            if let myWebview = self.webView{
                let url = NSURL(string: detailItem as String)
                let request = NSURLRequest(URL : url!)
                myWebview.scalesPageToFit = true
                myWebview.loadRequest(request)
            }
        }
    }

最佳答案

  1. 准备函数

    controller.detailItem = urlString

    controller.detailItem = urlString as AnyObject?

  2. 添加DetailViewController

     var detailItem: AnyObject? {
        didSet {
            self.configureView()
        }
    }
    

关于Swift 3 - 无法将类型 'String?' 的值分配给类型 'NSDate' MasterViewController.swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45048522/

相关文章:

ios - 推送通知 : no sound

ios - iPhone 应用程序出现奇怪的崩溃

swift - 如何在 Swift 中设置全屏弹出背景

带有 where 子句的 Swift 数组扩展不适用于子协议(protocol)

ios - GPUImage - 尝试在混合过于频繁时过度释放帧缓冲区

swift - 将小型 swift 项目合并到另一个 swift 项目中

objective-c - 如何在 UIDatePicker 中限制 countDownTimer?

swift - 我的进度条是垂直的,我希望它是水平的

ios - 获取请求 "unrecognized selector"错误

ios - 推送后如何将用户带到选定的索引