繁体   English   中英

Swift中的委托方法,致命错误

[英]Delegate method in Swift, fatal error

我正在尝试在Swift中实现委托方法。

这是我得到的错误: fatal error: unexpectedly found nil while unwrapping an Optional value

我究竟做错了什么??

import UIKit

protocol myProtocol {
    func appendName(name: String)
}

class MyArrayStore: NSObject, myProtocol {
    var myArray: [String] = ["Apple", "Carrot", "Orange"]
    func appendName(name: String) {
        myArray.append(name)
        println("\(myArray)")
    }
}

import UIKit

class ViewController: UIViewController {

    let myArrStore = MyArrayStore()

    var myDelegate: myProtocol!

    @IBAction func addName(sender: UIButton) {
        let name = "John"
        myDelegate!.appendName(name) // fatal error: unexpectedly found nil while unwrapping an Optional value
    }
}

我在ApplicationDidFinishLaunching的AppDelegate中初始化MyArrayStore类:

var myStore: MyArrayStore = MyArrayStore()

将myDelegate!.appendName(name)更改为myArrStore.appendName(name)

我认为发生这种情况是因为您从未设置myDelegate 而且由于myDelegatenil ,调用myDelegate!.appendName(name)导致myDelegate

但是请先阅读一些基本概念:

https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Protocols.html

首先->搜索“委派”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM