そして、私は委任されたパターンを実行しています。私は、デリゲートがメッセージをに送信する簡単なアプリケーションを作成しました。UIActivityIndicatorViewを表示すると、UIViewControllerが表示されます。残念ながら、私は次のエラーが発生します:error atal:オプションの値をアンラップしている間に予期せずnilが見つかりました。 UIActivityIndicatorViewは初期化されていないようです。私はどこが間違っているのか理解できません。代理人とUIActivityIndicatorViewエラー
protocol ProgressBarDelegate {
func UpdateProgressBar(progress: Bool)
}
class Dao: NSObject {
var delegate: ProgressBarDelegate?
override init() {
super.init()
//DELEGATO
//I who should I send the message? to FirstViewController
let messaggero = FirstViewController()
self.delegate = messaggero
scriviUnMessaggio(progress: true)
}
func scriviUnMessaggio(progress: Bool){
print("I'm writing a message ...")
delegate?.UpdateProgressBar(progress:progress)
}
私のコントローラ
class FirstViewController: UIViewController,ProgressBarDelegate {
@IBOutlet var activity: UIActivityIndicatorView!
func UpdateProgressBar(progress: Bool){
print("I received the message from Dao class (the delegate)")
switch progress{
case true:
// At this point I get the following error:Fatal error: unexpectedly found nil while unwrapping an Optional value
self.activity.startAnimating()
case false:
self.activity.stopAnimating()
default:
self.activity.startAnimating()
}
}
override func viewDidLoad() {
super.viewDidLoad()
let dao = Dao()
/// dao.caricamentoDati()
はあなたが接続していません行う
に従うとして、それが
viewDidLoad
変更に
self
にデリゲートを設定しself.activity.startAnimating()
であなたのDoaからのinitメソッドをクラッシュを与えている理由ですアクティビティビューアウトレット? – rmaddy
(はい)コンポーネントが正しく私のストーリーボードに接続されています – Diego
そうでなければ、エラーは発生しません。 'self.activity.startAnimating()'行にブレークポイントを置き、 'self.activity'が' nil'であることがわかります。 – rmaddy