我們一直致力於開發公共動態的iOS/Mac系統框架。該框架是用Objective-C編寫的,但它與Swift完全兼容。
最近,我們已經改變了空性的註釋爲我們的公共API方法之一:
從
- (void)setServer:(nullable ABCLocation *)location;
到
- (void)setServer:(nonnull ABCLocation *)location;
,因此開發者需要創建[ABCLocation default]
實例,並通它到新的API。
問題
現在,我們關心的,如何執行/通知開發商來改變我們周圍的新的API,其存在的代碼?
當使用API與Swift,它似乎通過拋出一個錯誤很好地處理空性。
Objective-C的,雖然,僅生成時nil
傳遞警告,Xcode中不執行任何操作,當開發者傳遞一個nullable
屬性的方法。
我們如何強制開發人員更改他們的API?這裏常見的做法是什麼?
UPD:
我們分配框架作爲二進制,發佈配置,其中斷言關閉內置。
UPD#2:
到目前爲止,我們已經接受了現實,當我們的API從Objective-C的使用。但是,我們已經實現了「自動防故障」行爲:如果通過nil
,則該方法在內部創建[ABCLocation default]
實例並將其隱式傳遞。
「當開發人員將可空屬性傳遞給方法時,Xcode不執行任何操作。」還有其他的錯誤,如果事實上是這樣的話,你應該得到警告。 – Mike