我觉得我有一个独特的问题。此问题源于解析COLLADA XML文件。我正在通过文件元素中的空格进行过滤,并且它工作正常,除非我将其转储到NSArray,在得到我想要分离的实际点之前,我得到一堆垃圾零值。
我的问题是......如果我的NSMutableArray有一堆NSNumber值,并且我想过滤掉所有零值,我该怎么办呢?
我以为我可以做类似的事情:
NSNumber * newNumber;
NSMutableArray * newArray = [[NSMutableArray alloc] init];
for(oldNumber in oldMutableArray)
{
if(oldNumber != 0)
{
[newArray addObject: oldNumber];
}
}
然而,这不起作用。 :)
答案 0 :(得分:1)
这里的主要问题是!= 0
实际上是在检查nil值,而不是NSNumber等于0。
你应该能够做到这一点:
[allXMLObjects removeObject:@(0)];
这将删除所有出现的数值为0的NSNumber。
答案 1 :(得分:0)
添加oldNumber
,而不是newNumber
。 newNumber
为nil
NSMutableArray * newarray = [[NSMutableArray alloc] init];
for(oldNumber in oldmutablearray)
{
if(oldnumbervalues != 0)
{
[newarray addObject: oldNumber]; //Add old number, not newNumber. newNumber was nil
}
}