簡體   English   中英

如何在數組中查找布爾值?

[英]How do I look for bool values in array?

我有一個對象數組,每個對象包含一個帶有yes或no的bool值。 我想將所有帶有YES的對象復制到另一個數組。 我怎樣才能做到這一點? 我曾考慮過使用謂詞過濾數組或將其集成到for循環中,但我似乎無法正確處理。

我需要這樣的東西:

for (BOOL* opslag_Set in [dataSource allKeys]){
    NSArray *array = [dataSource objectForKey:opslag_Set];
    for (int j = 0; j < [array count]; j++) {
        if ([[array objectAtIndex:j] isEqualToString:@"YES"]) {
            add object to another array;
        }
    }
}

我數組的第一個對象:

    },
    {
    Dato = "2012-11-07 16:20:57 +0000";
    Forfatter = "Vej 51, st. tv.";
    Indhold = "Referat af beboerm\U00f8de";
    "Opslag_set" = 0;
    Overskrift = "Beboerm\U00f8de";
    Prioritet = 0;
    Svar =         (
                    {
            Dato = "2012-11-07 16:23:07 +0000";
            Forfatter = "6. tv.";
            Indhold = "Fedt fedt fedt";
        }
    );
},

您必須使用NSNumber才能將布爾值存儲在數組中。

假設您的布爾數組稱為boolArray ,則僅使用YES來獲取數組的代碼將如下所示:

NSMutableArray* temp = [NSMutableArray new];
for (NSNumber* value in boolArray)
{
    if ([value boolValue])
    {
        [temp addObject:[NSNumber numberWithBool:YES]];
    }
}

但是,為什么要嘗試這樣做? 這將返回一個具有一定數量相同元素的數組。 如果需要的話,您可以只數一下。 我能想到的另一件事是,您有一個帶有bool屬性的對象,在這種情況下,您可以輕松地修改上面的代碼。

編輯:好的,我們假設我們有一個名為MyDataObject的對象,該對象具有bool屬性MyDataObject NSNumber* boolProperty 這是代碼:

NSMutableArray* temp = [NSMutableArray new];
for (MyDataObject* value in boolArray)
{
    if ([value.boolProperty boolValue])
    {
        [temp addObject:value];
    }
}

這應該適合您的工作。 temp將引用原始對象-不會復制它們。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM