###前提・実現したいこと
swiftで自作のデリゲート処理を作るために、簡単なサンプルでデリゲートの動作チェックをしようと考えています。
ネットの記事を見ながら、以下コードのように書きましたが、sampleProtocolFunctionに処理が入りません。
また、sampleClassAのdelegateは初期値nilが入っていますので、sampleProtocolFunctionが呼べないという状態なのではないかと思ったのですが、
ネットの記事ではsampleClassAのdelegateがnilの状態で呼ばれているような感じで書かれており、
自身のコードのどこがいけないのか分からない状態です。
実現したいことは、sampleClassAからsampleClassBで定義されているsampleProtocolFunctionを呼び出したいです。
何卒、よろしくお願い致します。
###発生している問題・エラーメッセージ
sampleClassAからsampleClassBで定義されているsampleProtocolFunctionに処理が入らない。
エラーメッセージはありません。
###該当のソースコード
swift3
1class ViewController: UIViewController { 2 3 override func viewDidLoad() { 4 super.viewDidLoad() 5 6 let sampleB : sampleClassB? = sampleClassB() 7 sampleB?.initialize() 8 9 let sampleA : sampleClassA? = sampleClassA() 10 sampleA?.initialize() 11 } 12 13 override func didReceiveMemoryWarning() { 14 super.didReceiveMemoryWarning() 15 // Dispose of any resources that can be recreated. 16 } 17}
swift3
1protocol sampleProtocol : class { 2 func sampleProtocolFunction() 3}
swift3
1class sampleClassA { 2 3 weak var delegate : sampleProtocol? 4 5 func initialize() { 6 7 delegate?.sampleProtocolFunction() 8 } 9}
swift3
1class sampleClassB : sampleProtocol { 2 3 weak var delegate : sampleProtocol? 4 5 func initialize() { 6 7 delegate = self 8 } 9 10 func sampleProtocolFunction() { 11 12 print("OK") 13 } 14}
###試したこと
ネットを見ながら、
delegateを弱参照にしたり、
強制的にアンラップしようとしたりしました。
###補足情報(言語/FW/ツール等のバージョンなど)
xcode 8.2.1
swift 3.0
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/06/02 07:27
2017/06/02 07:31
2017/06/02 07:52
2017/06/02 07:56 編集
2017/06/02 07:58