我觉得我有一个独特的问题。 此问题源于解析 COLLADA XML 文件。 我正在按文件元素中的空格过滤,它工作正常,除了当我将其转储到 NSArray 时,在我达到我试图隔离的实际点之前,我得到了一堆垃圾零值。
我的问题是...如果我的 NSMutableArray 有一堆 NSNumber 值,并且我想过滤掉所有零值,我该怎么做?
我想我可以做这样的事情:
NSNumber * newNumber;
NSMutableArray * newArray = [[NSMutableArray alloc] init];
for(oldNumber in oldMutableArray)
{
if(oldNumber != 0)
{
[newArray addObject: oldNumber];
}
}
但是,这不起作用。 :)
你这里的主要问题是!= 0
实际上是在检查 nil 值,而不是 NSNumber 是否等于 0。
您应该能够执行此操作:
[allXMLObjects removeObject:@(0)];
这将删除数值为 0 的所有 NSNumber。
添加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
}
}