Boolean BOOL bool帶來的坑

問題描述:

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ū)別

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • iOS網(wǎng)絡架構(gòu)討論梳理整理中。。。 其實如果沒有APIManager這一層是沒法使用delegate的,畢竟多個單...
    yhtang閱讀 5,494評論 1 23
  • 禪與 Objective-C 編程藝術(shù) (Zen and the Art of the Objective-C C...
    GrayLand閱讀 1,814評論 1 10
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,694評論 19 139
  • *面試心聲:其實這些題本人都沒怎么背,但是在上海 兩周半 面了大約10家 收到差不多3個offer,總結(jié)起來就是把...
    Dove_iOS閱讀 27,655評論 30 472
  • 基礎 1. 為什么說Objective-C是一門動態(tài)的語言? 2. 講一下MVC和MVVM,MVP? 3. 為...
    波妞和醬豆子閱讀 3,550評論 0 46

友情鏈接更多精彩內(nèi)容