如何處理陣列越界而不會讓程式崩潰

2021-09-23 21:33:31 字數 1320 閱讀 9471

如何處理陣列越界而不會讓程式崩潰?

陣列越界是非常常見的現象,有時候,你的程式中,因為陣列越界而崩潰了,很難找,理想的狀態是,陣列越界的時候給我們返回nil就好了.

請看下面這個例子:

//

// rootviewcontroller.m

// beyondthemark

////

#import "rootviewcontroller.h"

@inte***ce rootviewcontroller ()

@end

@implementation rootviewcontroller

- (void)viewdidload

@end

執行結果:

這個方法objectatindex:的說明

an nsrangeexception is raised.超出了界限就會丟擲異常

parameters    

index    

an index within the bounds of the array.

我們可以寫乙個類目來避免陣列越界後直接崩潰的情形(或許崩潰是最好結果,但我們有時候可以直接根據判斷陣列取值為nil避免崩潰),**如下:

//

// nsarray+yxinfo.h

// beyondthemark

////

#import @inte***ce nsarray (yxinfo)

- (id)objectat:(nsuinteger)index;

@end

//

// nsarray+yxinfo.m

// beyondthemark

////

#import "nsarray+yxinfo.h"

@implementation nsarray (yxinfo)

- (id)objectat:(nsuinteger)index

else

}@end

實現原理超級簡單呢:)

使用:

型別轉換越界計算機如何處理

物件的型別定義了物件能包含的資料和能參與的運算,其中一種運算被大多數型別支援,就是將物件從一種給定的型別轉換 convert 為另一種相關型別。當在程式的某處我們使用了一種型別而其實物件應該取另一種型別時,程式會自動進行型別轉換。此處,有必要說明當給某種型別的物件強行賦了另一種型別的值時,到底會發生...

如何處理DDoS

ddos 簡述 ddos是分布式拒絕服務 distributed denial of service 的英文縮寫,其 方式通常是利用很多受 者控制的 殭屍主機 向目標主機傳送大量看似合法的資料報,從而造成主機資源被耗盡或網路被堵塞,導致主機無法繼續正常提供服務。ddos通常可以分為兩類,即資源耗費式...

如何處理DDoS

ddos 簡述 ddos是分布式拒絕服務 distributed denial of service 的英文縮寫,其 方式通常是利用很多受 者控制的 殭屍主機 向目標主機傳送大量看似合法的資料報,從而造成主機資源被耗盡或網路被堵塞,導致主機無法繼續正常提供服務。ddos通常可以分為兩類,即資源耗費式...