###前提・実現したいこと
swiftをやり始めてから三ヶ月ほど経ち、訳も分からずコントローラにベタ書きしていたコードを分割しています。
その中で、コントローラごとに書かれているデリゲート部分を一つに出来ればコードがすっきりすると思い、デリゲートを処理するだけのクラスを作成しようと思ったのですが、selfの部分でエラーが出てしまい、先に進めなくなってしまいました。
もともと、コントローラ側に書かれていた書式で、動作していたものなのですが、エラーを吐くようになってしまいました。
原因はエラーコードを見ると、型が違うみたいなエラーコードなのですが、修正方法が分からない状況です。
実現したいことは、AClass._object.delegateの適用先に自身(self)を設定し、AClassでBClassDelegateのメゾッドを使いたいと思っております。
ご教授お願いいたします。
###発生している問題・エラーメッセージ
cannot assign value of type 'AClass.Type' to type 'BClassDelegate?'
###該当のソースコード
class AClass : NSObject , BClassDelegate{ static var _object : BClass? /// タイマーをスタートさせる static func Initialize(){ _ = NSTimer.scheduledTimerWithTimeInterval(1.0, target : self, selector : #selector(Update), userInfo : nil, repeats : true) } static func Update(){ if(AClass._object == nil){ AClass._object = SharedInstance.fetchBClass() if(AClass._object != nil){ // ここでエラーが出る ↓ AClass._object!.delegate = self } } } }
###試したこと
_objectをオプショナル型にしたりしましたが、改善されませんでした。
###補足情報(言語/FW/ツール等のバージョンなど)
Xcode 7.3.1
Swift 2.3
BClassはBClassDelegateを継承しております。
コントローラ側では、同じ記述で動作しておりました。
追記です。
BClassはBClassDelegateを継承しております。とありましたが、継承していませんでした。
回答2件
あなたの回答
tips
プレビュー