iOS10 CAAnimationDelegate適配引伸到條件編譯

本文將圍繞2個問題展開。ios

- iOS10 CAAnimationDelegate適配xcode

- 條件編譯動畫

一、iOS10 CAAnimationDelegate適配代理

緣由是動畫的代理沒有遵循協議。解決以下:code

覺得萬事大吉?在X-code7打開運行編譯報錯。ios10以前寫動畫的協議方法,不須要去遵循系統的動畫代理。io

二、此問題引伸開來的條件編譯。利用__IPHONE_OS_VERSION_MAX_ALLOWED系統宏進行條件編譯編譯

在@interface前加上。class

#if __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_10_0

@interface ViewController () <CAAnimationDelegate>

#else

@interface ViewController ()

#endif

可是在X-code7運行依舊報錯,緣由是由於__IPHONE_10_0在之前版本的X-code中根本不存在。#if __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_10_0這句在xcode8以前的版本上運行,是個恆成立的條件。。。條件編譯的限制也就失去了原本的意義。__IPHONE_10_0這個宏也就是一個數字:100000。因此把__IPHONE_10_0用100000代替酒能夠解決適配Ios10以前的條件編譯了。可是這樣也有可能有問題,萬一每次升級須要檢查這個宏的值有沒有變化。object

相關文章
相關標籤/搜索