2012-08-23 72 views
2

我試圖創建一個NSMutableArray包含另一個給定索引的內容。測試我的數組在給定索引處是否爲零?

我初始化與initWithArray:如果前面的數組索引在任何新的數組,否則用普通init

此代碼不工作,但你應該能夠從中得到的想法:

NSMutableArray *typeCourseCutId; 
if([self.typeCourseCut objectAtIndex:typeCourseIndex] != nil){ 
    typeCourseCutId = [[NSMutableArray alloc]initWithArray:[self.typeCourseCut objectAtIndex:typeCourseIndex]]; 
} else { 
    typeCourseCutId = [[NSMutableArray alloc]init]; 
} 

有沒有這種測試的解決方案?

+1

哪種類型的數據存儲的? –

+3

'objectAtIndex:'不會爲_any_索引返回'nil'。可可數組不能包含'nil',並且如果你嘗試訪問數組邊界外的索引,將會引發異常。試圖將'nil'放入數組中也會導致異常。 –

回答

3

您可以檢查數組的數量。如果計數大於您正在提取的索引,則意味着該索引中存在一個對象。

還要確保你的self.typeCourseCut是一個NSArray對象的數組,否則你的initWithArray:會崩潰。在Self.typeCourseCut

您也可以一個空對象到一個數組添加爲[yourArray addObject:[NSNull null]]; 而且最重要的是,無需在索引1處具有一個對象,則不能將對象添加到索引2

+0

這是正確的答案;如果索引在正確的範圍內,那裏有一個對象。關於'initWithArray:'的說明也很重要。 –

+0

thnks buddy .. :) –

+0

謝謝你,雖然我做了這個[...計數]選項,但沒有通過...我會嘗試從Apple獲取NSNull文檔的更新。 – Tim

6

有一個名爲NSNull特殊的類,是專門創建的集合使用作爲空指示符:

NSNull類定義用於表示在集合對象null值(不允許一個singleton對象nil值)。

if([self.typeCourseCut objectAtIndex:typeCourseIndex] != [NSNull null]) ... 
2

數組不應爲零的任何索引。數組的建立方式是隻要它到達一個零對象。它被認爲是數組的末尾。

您不能添加零對象,也不能將現有對象更新爲零。

如果您必須將某些內容設置爲「空」樣式對象,則可以在其位置使用NSNull。這是大多數JSON解析器爲他們想要顯示的對象執行的操作,但是爲空。

相關問題