2013-10-24 77 views
0

我覺得我有一個獨特的問題。此問題源於解析COLLADA XML文件。我用文件元素中的空白符過濾,並且它工作正常,除非將它轉儲到NSArray中,在我嘗試分離實際點之前,我會得到一堆垃圾零值。在沒有NSPredicate的情況下過濾NSMutableArray中的NSNumber對象?

我的問題是...如果我的NSMutableArray有一堆NSNumber值,我想過濾掉所有的零值,我該怎麼做?

我想我可以做這樣的事情:

NSNumber * newNumber; 
NSMutableArray * newArray = [[NSMutableArray alloc] init]; 

for(oldNumber in oldMutableArray) 
{ 
    if(oldNumber != 0) 
    { 
     [newArray addObject: oldNumber]; 
    } 
} 

這是不行的,但是。 :)

+0

'問題是,那是行不通的......'這不是問題,臨屋區這是一個結論。 –

回答

1

你的主要問題是:!= 0真的檢查零值,而不是如果的NSNumber等於0

你應該能夠只是這樣做:

[allXMLObjects removeObject:@(0)]; 

這將刪除所有出現的數字值爲0的NSNumbers。

0

添加oldNumber,而不是newNumbernewNumber在這裏nil

NSMutableArray * newarray = [[NSMutableArray alloc] init]; 

for(oldNumber in oldmutablearray) 
{ 
    if(oldnumbervalues != 0) 
    { 
     [newarray addObject: oldNumber]; //Add old number, not newNumber. newNumber was nil 
    } 
} 
相關問題