繁体   English   中英

如何检查NSMutableArray内部的状态

[英]how to check status inside NSMutableArray

我有3 NSMutableArray 我想比较三个的三个NSMutableArray并找到不同的索引并存储在另一个NSMutableArray 当我不保存在第三NSmutableArray时,我想打印这句话。

这是我的代码,但不起作用:

            NSMutableArray *jsonArray = [[NSMutableArray alloc]init];
            jsonArray = [dic objectForKey:@"Modified"];
            NSMutableArray *sqliteArray = [[NSMutableArray alloc]init];
            [sqliteArray addObjectsFromArray:ModiArray];
            differentValue = [[NSMutableArray alloc]init];
    //guys jsonArray and SqliteArray not different index
        if ([jsonArray count] == [sqliteArray count])
            {
                for (int i = 0; i < [sqliteArray count]; i++)
                {
                    if (![jsonArray[i] isEqual:sqliteArray[i]])
                    {
                        [differentValue addObject:[NSNumber numberWithInt:i+1]];
                    }
                }
//My problem here!!! when I NSLog differentValue show me empty but when I write this code dont work
                if (differentValue == NULL)
                {
                    NSLog(@"this array is null");
                }
            }

null *数组和空数组之间存在差异,就像空白的购物清单和没有一张纸之间存在差异。 如果要测试数组是否为空,最简单的方法是说if(differentValue.count == 0)

(mayuur也是正确的,您可以用对-containsObject -containsObject:的调用来替换整个循环,但是您的代码没有什么错;它只是没有尽可能好地使用框架。)

*实际上, nil是对象的首选,因为它被声明为id ,但是在此代码中无关紧要。

if(![jsonArray containsObject:yourObject])
{
    [differentValue addObject:yourObject];
}

另请注意,您正在执行以下操作,这正在泄漏内存:

NSMutableArray *jsonArray = [[NSMutableArray alloc]init]; // NOT RELEASED
jsonArray = [dic objectForKey:@"Modified"];

相反,您可以像这样直接分配数组:

NSMutableArray *jsonArray = [dic objectForKey:@"Modified"];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM