簡體   English   中英

如何使用嵌套數組搜索自定義對象的NSArray?

[英]How to search NSArray of custom objects with nested arrays?

我的應用程序中有一個NSArray 該數組由自定義對象組成,這些自定義對象具有一個NSArray ,該NSArray也具有這些相同的自定義對象。 它的結構如下:

@[
    entry,
    entry,
    entry
]

並且此Entry對象具有一個value參數,該參數是其中包含條目的NSArray 如您所見,它是一個嵌套的自定義對象數組。 但是, value參數也可以是NSString 我的問題是:如何搜索此數組並在其子級中搜索值是字符串且與查詢匹配的條目?

好吧,最簡單的方法(可能不是最好的方法)就是將它們全部循環。 由於您的數據結構似乎可能是條目數組,可能具有條目數組的值,並且可能會不斷出現,因此我將其寫為遞歸函數。

- (NSArray<Entry *> *)entriesWithValueMatching:(NSString *)value inArray:(NSArray<Entry *> *)arrayOfEntries
{
    NSMutableArray *matchingEntries = [NSMutableArray array];

    for (Entry *entry in arrayOfEntries) {
        if ([entry.value isKindOfClass:[NSArray class]]) {
            [matchingEntries addObjectsFromArray:[self entriesWithValueMatching:value inArray:entry.value]];
        } else if ([entry.value isKindOfClass:[NSString class]]) {
            if ([(NSString *)entry.value isEqualToString:value]) {
                [matchingEntries addObject:entry];
            }
        }
    }

    return matchingEntries.copy;
}

暫無
暫無

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

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