今天我做了一些有點討厭的事情。使用Objective-C類別避免編譯錯誤
我們所有的視圖控制器都從兩個不同的父視圖控制器繼承,比如XXXViewController和YYYViewController。 XXXViewController依次繼承TrackedUIViewController
,這是Google AnalyticsSDK中提供的一個類,所以您的所有視圖控制器都可以繼承並輕鬆跟蹤它們。
但是,YYYViewController繼承了不同類型的視圖控制器。嗯,這是一個開源的代碼,我真的不想改變。
這裏有什麼問題嗎?我們無法跟蹤任何YYYViewController子級,因爲我們無法訪問TrackedViewController中提供的方法,因爲它們是私有的。
我不想修改Google AnalyticsSDK中提供的來源。那麼我做了什麼?創建一個公開這些方法的類別,以避免編譯錯誤。
這個明顯的缺點是GA源代碼改變了它可能會中斷,但它會很容易被檢測到。
我想知道我可能面臨的其他問題,如果你們能想到更好的方法。
謝謝
問題是,這個YYYViewController是一個開源的組件,我不想修改:) –
@frowing你不能這樣做,否則。請參閱將單詞'UIViewController'更改爲'TrackableUIViewController'不應該受到傷害。正如我所提到的,你不會失去任何功能...... – 2012-09-18 15:21:48