Objective c 是否在NSMutableArray中筛选NSNumber对象而不使用NSPredicate?

Objective c 是否在NSMutableArray中筛选NSNumber对象而不使用NSPredicate?,objective-c,nsarray,Objective C,Nsarray,我觉得我有一个独特的问题。这个问题源于解析COLLADA XML文件。我通过文件元素中的空白进行过滤,它工作得很好,除非我将其转储到NSArray,在我到达我试图隔离的实际点之前,我会得到一堆垃圾零值 我的问题是…如果我的NSMutableArray有一堆NSNumber值,我想过滤掉所有的零值,我该怎么做 我想我可以做一些类似的事情: NSNumber * newNumber; NSMutableArray * newArray = [[NSMutableArray alloc] init];

我觉得我有一个独特的问题。这个问题源于解析COLLADA XML文件。我通过文件元素中的空白进行过滤,它工作得很好,除非我将其转储到NSArray,在我到达我试图隔离的实际点之前,我会得到一堆垃圾零值

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

我想我可以做一些类似的事情:

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

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

但是,这不起作用。:)

添加
oldNumber
,而不是
newNumber
newNumber
was
nil

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

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

您的主要问题是
!=0实际上是在检查nil值,而不是NSNumber是否等于0

您应该能够做到这一点:

[allXMLObjects removeObject:@(0)];

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

问题是,这不起作用…
这不是问题,这是结论。