簡體   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