我有从移动数组中删除重复对象的问题.我已经尝试了这些:
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)
但上面没有一个给我正确的阵列.最后一个是最好的,但它仍显示重复值.有人可以帮我解决这个问题吗?非常感谢你.
请注意,这适用于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)