0
我需要一種方法來根據NSUserDefaults中的值有條件地定義類的超類。基於#if評估的iOS界面聲明
我知道可以根據#ifdef指令定義不同的接口。我想知道是否可以用#if指令實現相同的功能? 如果不是,還有其他方法可以實現我的目標嗎?
謝謝!
我需要一種方法來根據NSUserDefaults中的值有條件地定義類的超類。基於#if評估的iOS界面聲明
我知道可以根據#ifdef指令定義不同的接口。我想知道是否可以用#if指令實現相同的功能? 如果不是,還有其他方法可以實現我的目標嗎?
謝謝!
你不能用預處理器指令來做這件事,因爲它會在編譯時確定,而NSUserDefaults是你想在運行時檢查的東西。
我覺得這個帖子可以幫到你Dynamically change an object's superclass 無論如何,你確定這是你設計能做到的最好嗎?爲什麼要在運行時根據NSUserDefaults中的內容更改超類?
我目前有兩個不同的實現相同的事情。每個人使用不同的繼承。我希望用戶能夠在兩者之間進行切換,並堅持這一選擇...... –
但我不確定這是否是一種好的模式。通常,不同的繼承意味着完全不同的東西,而特定類的不同子類意味着「某些東西被添加到這個類中,某些東西可能被覆蓋」。你有沒有考慮使用協議或類別,而不是不同的繼承? – Vik
是的,兩個不同的類不是一個選項,因爲這個類是從應用程序中的很多地方訪問的,如果它們中有兩個,我將不得不在所有這些地方調用適當的類。 –