製作Library或framework的時候,偶爾會遇到自己原本開發的功能需要預告停用的狀況。

在Swift 與 OC 分別有不同的寫法,可以讓xcode 獨到的時候自動跳出黃色的警告,讓caller 知道這個功能即將停用。

Swift 寫法

Swift 相對乾淨簡單,其實只要在function 前面加上@available即可。

    @available(*, deprecated, renamed: <#String#>, message: <#String#>)

其中remaned 是optional 的parameter。如果有提供的話,使用者可以直接看到新的function name,並且使用 xcode 的fix 直接替換掉。

但是需要特別注意的是,如果這個方法是在class 或是singleton底下,那新呼叫的method需要是在同一個class 底下,不然會造成叫不到的狀況。

如果有不同class,建議可以把這個parameter 移除掉,留下message就好。

OC 寫法

OC 寫法比較不一樣,要寫在header file 裡面,並且是加掛在method name後面

__attribute__((deprecated("Use newMethod: instead")))

例如

- (BOOL)    requestFavorDevicePlaybackTimelineExportMp4toMp4:(NSArray<NSString *> *)source_mp4_filepath_array output_final_mp4:(NSString *)final_mp4_filepath __attribute__((deprecated("Use newMethod: instead")));