0

我觉得我有一个独特的问题。此问题源于解析 COLLADA XML 文件。我正在按文件元素中的空格进行过滤,它工作正常,除非我将其转储到 NSArray 中,否则在达到我要隔离的实际点之前,我会得到一堆垃圾零值。

我的问题是……如果我的 NSMutableArray 有一堆 NSNumber 值,并且我想过滤掉所有零值,我该怎么做?

我以为我可以做类似的事情:

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

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

但是,这不起作用。:)

4

2 回答 2

1

您的主要问题!= 0是真正检查 nil 值,而不是 NSNumber 是否等于 0。

你应该能够做到这一点:

[allXMLObjects removeObject:@(0)];

这将删除所有出现的数值为 0 的 NSNumber。

于 2013-10-24T17:02:50.687 回答
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
    }
}
于 2013-10-24T16:59:17.060 回答