繼續之前的文章
在xcode中又兩個地方設置sdk,一個是Development Target,指的是編譯後的app可再終端的哪個版本上運行,設置方法如圖
另外一個是Base SDK,指的是當前編譯所用的SDK版本,設置方法如圖
這兩個在開發的時候需要注意,比如用xcode5.0默認的設置開發的app是iOS7.0的,想要適配iOS6.1,需要將Development Target改成iOS 6.1,並且將模擬器設置成iOS6.1,再運行程序的話就是在iOS6.1下邊運行了,但是如果不設置BaseSDK的話,工程就是基於SDK7.0編譯而基於SDK6.1運行,這樣極有可能崩潰,比如因tintColZ喎?/kf/ware/vc/" target="_blank" class="keylink">vcsr00NTV0rK7tb22+LHAwKOho8v50tS198rUtcTKsbry0ru2qNKqyejWw0Jhc2VTREuhozwvcD4KPHA+u7nKx9aux7DOxNXCtcTA/dfTo6zU2nhjb2RlNS4wz8LQwr2o0ru49rmks8yjrMSsyM+1xERldmVsb3BtZW50IFRhcmdldLrNQmFzZVNES7a8ysc3LjCjrNTaQXBwRGVsZWdhdGUubc7EvP61xGRpZEZpbmlzaExhdW5jaGluZ1dpdGhPcHRpb25zt723qMDvsd/QtMnP0ru+5DwvcD4KPHA+PHByZSBjbGFzcz0="brush:java;">self.window.tintColor = [UIColor redColor];
運行程序,不會出錯。現在將Development Target改成6.1,將模擬器改成6.1。
然後運行,編譯通過,但是運行崩潰,打印
2014-03-21 09:26:58.253 TestTarget2[77981:907] -[UIWindow setTintColor:]: unrecognized selector sent to instance 0x7572850 2014-03-21 09:26:58.284 TestTarget2[77981:907] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIWindow setTintColor:]: unrecognized selector sent to instance 0x7572850'
將上邊一句改成
#ifdef __IPHONE_7_0 self.window.tintColor = [UIColor redColor]; #endif