2017-03-22 4 views
1

Ich habe einen benutzerdefinierten Delegaten unten ist der Code für dasSwift Compiler stürzt bei benutzerdefinierten Delegatmethode

import UIKit 
protocol SAlertViewDelegate { 
func clickedButtonTitle(_ title:String?,alertTag:Int?) 
} 
func button1Action(_ sender: UIButton?) { 

    let titleLabel=sender?.titleLabel?.text 
    self.delegate?.clickedButtonTitle(titleLabel!,alertTag: alertTag!) 
    removeFromMainView() 
} 

Implementierung dieser Delegatmethode in einem Viewcontroller

func clickedButtonTitle(_ title:String?,alertTag:Int?) 
{ 
    print(title) 
} 

Während das Projekt Gebäude es den Fehler zeigt,

Letzte Meldungen anzeigen Befehl fehlgeschlagen wegen Signal: Segmentierung fau LT: 11 1. Während SIL emittierende für 'clickedButtonTitle'

Der gleiche Code funktioniert gut auf schnellen 2.3, aber nicht in swift3.

Antwort

0

In Ihrer Protokolldeklaration benötigt die Funktionssignatur den internen Variablennamen nicht.

protocol SAlertViewDelegate 
{ 
    func clickedButtonTitle(_ title:String?,alertTag:Int?) 
} 

sollte also

protocol SAlertViewDelegate 
{ 
    func clickedButtonTitle(_ :String?, alertTag:Int?) 
} 

sein Dies kann oder kann nicht der einzige Grund für den Fehler sein. Es ist schwer zu sagen, wann Sie einen Segmentierungsfehler erhalten.

Ihre anderen Codeschnipsel sind nicht im Zusammenhang, daher ist es schwer zu sagen, was das Problem sonst noch verursachen könnte.

Verwandte Themen