ios 針對陣列越界的崩潰優化

2021-08-19 19:16:40 字數 1093 閱讀 7293

陣列越界是常見的崩潰 , 崩潰日記是類似這樣的 :

網上也找過怎麼解決,但是都不是太徹底, 由於 nsarray是乙個類簇,需要把所有的入口都封住才算完美 . 方法還是很常見的,用了runtime的方法替換 . 然後 給nsarray加類別 , 部分核心**:

@implementation nsarray (safeindex)

+ (void)load);

}- (id)emptyobjectindex:(nsinteger)index

- (id)singleobjectindex:(nsinteger)index

return [self singleobjectindex:index];

}- (id)safe_arrobjectindex:(nsinteger)index

return [self safe_arrobjectindex:index];

}- (id)safe_objectatindexedsubscript:(nsinteger)index

return [self safe_objectatindexedsubscript:index];

}- (id)mutablearray_safe_objectatindexedsubscript:(nsinteger)index

return [self mutablearray_safe_objectatindexedsubscript:index];

}- (id)safeobjectindex:(nsinteger)index

return [self safeobjectindex:index];

}- (void)safeinsertobject:(id)object atindex:(nsuinteger)index

if (object == nil)

[self safeinsertobject:object atindex:index];

}- (void)safeaddobject:(id)object

[self safeaddobject:object];

}@end

或者 cocoa上的 : 

iOS中防止陣列越界之後發生崩潰

在ios開發中有時會遇到陣列越界的問題,從而導致程式崩潰。為了防止程式崩潰,我們就要對陣列越界進行處理。通過上網查資料,發現可以通過為陣列寫乙個分類來解決此問題。基本思路 為nsarray寫乙個防止陣列越界的分類。分類中利用runtime將系統中nsarray的物件方法objectatindex 替...

針對資料庫索引的優化

本文主要對索引的建立及使用做具體描述,至於為什麼要使用索引 使用索引帶來哪些好處 索引的分類等內容這裡不再贅述,如果想知道請參考相關文件。一 如何正確的建立索引 1 對主鍵 外來鍵 建立索引 由於開發中經常通過主鍵或者外來鍵去查詢某條或者多條記錄,所以需要對主鍵 外來鍵建立索引 2 對於經常出現在查...

針對資料庫索引的優化

一 如何正確的建立索引 1 對主鍵 外來鍵 建立索引 由於開發中經常通過主鍵或者外來鍵去查詢某條或者多條記錄,所以需要對主鍵 外來鍵建立索引 2 對於經常出現在查詢條件中的字段建立索引 對於經常出現在查詢條件中的字段建立索引往往能提高查詢效率 3 結合需要返回的字段建立索引 對於需要查詢結果返回的字...