問題描述:
ui層的現(xiàn)象就不說了,我的app里說了你也看不到。debug找原因,最終定位到??一段代碼上,在 ios 7、8版本的手機上,if (!destinationAvailable) 的判斷失效
// 確保不重復添加
__block BOOL destinationAvailable = NO;
[self.destinationArray enumerateObjectsUsingBlock:^(Region * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
if (obj.code == region.code) {
//TODO 提示用戶該線路已添加? 還是直接替換原來線路
destinationAvailable = YES;
*stop = YES;
}
}];
if (!destinationAvailable) {
[self.destinationArray addObject:region];
}
解決:
將 __block Boolean destinationAvailable; 改為 __block BOOL destinationAvailable = NO;
分析:
下班回去在看,上班還要碼代碼呢??
不過大致可以猜到,在低版本系統(tǒng)中Boolean的初始值不是NO,也不是nil,具體的回去好好研究。猜測和int 在不同系統(tǒng)中位數(shù)不同類似。
關(guān)聯(lián)
bool 、BOOL、Boolean 的區(qū)別,及其在不同版本中的表現(xiàn)
基本數(shù)據(jù)類型不同版本中的細微區(qū)別