2011-02-24 101 views
0

我有很多空值的數組,我想從數組中刪除它們....刪除數組項具有空值

NSMutableArray *entry = [self.selectedRow allValues]; 

for (int i = 0 ; i < [entry count] ; i++) { 

    NSLog(@"count: %@", [entry objectAtIndex: i]); 
    NSLog(@"point: %@", [selectedRow valueForKey:[entry objectAtIndex:i]]); 
    if([[selectedRow valueForKey:[entry objectAtIndex: i]] length] < 2){ 
     [selectedRow removeObjectAtIndex: i]; 
    } 
} 

< 2是因爲有一些值有沒有真正空.....

出於某種原因[entry valueForKey:[entry objectAtIndex:i]]]是空

和我得到的exeption -[__NSCFDictionary removeObjectAtIndex:]: unrecognized selector sent to instance 0x7021510但沒有涉及療法只陣列字典。

當我倒數for (int i = [entry count -1; i = 0; i--]){循環甚至不稱爲?!?

我希望有人能幫助我與....

編輯:

是不是有什麼initialy想,但一些它是如何工作這樣更好... 我檢查長度當我分析的文件,所以我減少文件大小爲更多的則半和它的作品相當不錯的valueForKey .....

回答

0

試試這個:

NSMutableArray *entry = [NSMutableArray arrayWithArray:[self.selectedRow allValues]]; 

因爲[self.selectedRow allValues]可能會返回NSArray您不能只是假裝它是可變的。

OH。此外self.selectedRow看起來像是NSDictionary。改爲嘗試removeObjectForKey:

+0

selectRow是一個NSMutableArray ... 我哈德一個錯字其'[進入valueForKey:[進入objectAtIndex:我]]] '這是空的'[entry count]'給出正確的計數.... – Frank 2011-02-24 15:38:02

+0

或'NSMutableArray * entry = [[self.selectedRow allValues] mutableCopy];' – Abizern 2011-02-24 15:38:28

0

應該是,

for (int i = [entry count] -1; i > 0; i--]){ } 

試試,

for (int i = 0 ; i < [selectedRow count]; i++) { 
    if([[selectedRow objectAtIndex: i] count] < 2){ 
     [selectedRow removeObjectAtIndex: i]; 
    } 
} 
+0

現在好吧我進入循環... 但仍然是相同的豁免。 – Frank 2011-02-24 16:07:00

+0

你應該更清楚,關於數組中的內容?它是數組的數組?或者是其他東西? – karim 2011-02-24 16:26:02

+0

這取決於我來自哪個視圖。 在一種情況下,它是一個數組的數組。 在另一個它是一個數組,其中充滿了字典..... – Frank 2011-02-24 17:46:27