2025-04-30

繼續之前的文章

在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喎?https://www.aiwalls.com/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'

這是因為程序是在SDK7.0下編譯的,tintColor沒有問題,但是在SDK6.1下運行,6.1中是沒有tintColor的,結果就崩潰瞭。將BaseSDK改成6.1,再運行,就會編譯出錯,無法運行

將上邊一句改成

#ifdef __IPHONE_7_0
    self.window.tintColor = [UIColor redColor];
#endif

再運行,完美通過……

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *