iOS Crash之NSGenericException

問題

1.?foreach操作

NSGenericException這個異常最容易出現(xiàn)在foreach操作中,在for in循環(huán)中如果修改所遍歷的數(shù)組,無論你是add或remove,都會出錯,比如

uncaught exception 'NSGenericException',reason:'*** Collection <__NSCFDictionary:0x7071100> was mutated while being enumerated.

意思是在枚舉時,集合數(shù)據(jù)被修改了。

原因就在這 "foreach",它的內(nèi)部遍歷使用了類似 Iterator進行迭代遍歷,一旦元素變動,之前的元素全部被失效,所以在foreach的循環(huán)當中,最好不要去進行元素的修改動作,若需要修改,循環(huán)改為for遍歷,由于內(nèi)部機制不同,不會產(chǎn)生修改后結(jié)果失效的問題。

2. 讀取數(shù)據(jù)文件失敗

uncaught exception'NSGenericException',reason:Could not open database file at /var/mobile/media/iTunes_Control/iTunes/MediaLibrary.sqlitedb

3. 其他

?uncaught exception'NSGenericException',reason:UIPopoverPresentationController () should have a non-nilsourceView or barButtonItem set before the presentation occurs.

解決方法

1. 對于第一種情況,集合數(shù)據(jù)遍歷元素時,若需要修改原元素,不要使用foreach,而使用for循環(huán)。

2. 對于第二種情況,檢查數(shù)據(jù)庫文件的有效性,包括是否存在。

3. 對于第三種情況,也是檢查參數(shù)的有效性

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

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

  • 第2章 基本語法 2.1 概述 基本句法和變量 語句 JavaScript程序的執(zhí)行單位為行(line),也就是一...
    悟名先生閱讀 4,560評論 0 13
  • 悶熱,真是神奇的天氣。今天“熱唱了主角”。路旁邊的樹無精打采的站在一旁,樹梢的葉子也失去了往日的活力,懶洋...
    指揮官閱讀 261評論 0 3
  • 首先來看兩首很出名都是關(guān)于元宵節(jié)約會的宋詞。 去年元夜時,花市燈如晝。 月上柳梢頭,人約黃昏后。 今年元夜時,月與...
    武陵笑笑生閱讀 1,433評論 0 3
  • 1、拆書幫的來源: ?2009年,杭州阿里巴巴總部搬遷到新阿里園區(qū),為了給近萬名阿里人提供生活便利,阿里把星巴克、...
    MrLai閱讀 1,090評論 3 19
  • 發(fā)現(xiàn)老王特別喜歡在有人在的時候,特別不顧及我的顏面,去發(fā)脾氣。比如說秘書晚會,那天有個氣球在我旁邊爆了,她就在很多...
    小小番茄君閱讀 228評論 0 0

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