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

时间:2015-07-15 18:18:30

标签: ios swift delegates

我正在尝试在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()

2 个答案:

答案 0 :(得分:0)

为myArrStore.appendName(名称)更改myDelegate!.appendName(name)

答案 1 :(得分:0)

我认为这是因为您从未设置myDelegate。而且,因为myDelegate!.appendName(name)myDelegate而致nil,您将会崩溃。

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

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

首先 - >搜索“代表团”