相关疑难解决方法(0)

从NSMutableArray中删除重复项

我有从移动数组中删除重复对象的问题.我已经尝试了这些:

noDuplicates = _personalHistory.personalHistory;

for (int i=[noDuplicates count]-1; i>0; i--) {
    if ([noDuplicates indexOfObject: [noDuplicates objectAtIndex: i]]<i)
        [noDuplicates removeObjectAtIndex: i];
}


for (PersonalHistory_artikels *e in _personalHistory.personalHistory) {
    if (![noDuplicates containsObject:e]) {
        NSLog(@"Dubplicates");
        [noDuplicates addObject:e];
    }
}


for (i=0; i<_personalHistory.personalHistory.count; i++) {
    PersonalHistory_artikels *test = [_personalHistory.personalHistory objectAtIndex:i];
    for (j=0; j<_personalHistory.personalHistory.count; j++) {
        PersonalHistory_artikels *test2 = [_personalHistory.personalHistory objectAtIndex:j];
        if (! [test.nieuwsTITLE_personal isEqual:test2.nieuwsTITLE_personal]) {
            NSLog(@"Add test = %@", test.nieuwsTITLE_personal);
            [noDuplicates addObject:test];
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但上面没有一个给我正确的阵列.最后一个是最好的,但它仍显示重复值.有人可以帮我解决这个问题吗?非常感谢你.

cocoa cocoa-touch objective-c nsmutablearray

4
推荐指数
3
解决办法
2万
查看次数

如何从数组中获取唯一值

请注意,这适用于OSX,不适用于iOS.

我在其他SO问题中看过并尝试了一些解决方案,但似乎没有一个对我有用,因此:

我想从阵列中获得一组独特的年份.

我的代码是这样的:

NSMutableArray * unique = [NSMutableArray array];
        NSMutableSet * processed = [NSMutableSet set];
        for (yearString in yearStringArray) {
            if (![processed containsObject:yearString] == NO) {
                [unique addObject:yearString];
            }
            [processed addObject:yearString];
        }

        NSLog(@"unique: %@",unique );
        NSLog(@"processed: %@",processed );

    }];

The console returns:

unique: (
        (
        1941,
        1942,
        1943,
        1945,
        1948,
        1948,
        1948,
        1949
    )

processed: {(
        (
        1941,
        1942,
        1943,
        1945,
        1948,
        1948,
        1948,
        1949
    )
)}
Run Code Online (Sandbox Code Playgroud)

我只想要一个1948年.我将不胜感激任何帮助.

更新:感谢所有答案.让他们来吧!!!

这些是我现在尝试过的代码剪辑:

1.

for (yearString in yearStringArray) {
            if ([processed …
Run Code Online (Sandbox Code Playgroud)

macos objective-c nsarray nsset

4
推荐指数
2
解决办法
9920
查看次数