여러 도시와 국가가 있습니다. 이 두 개체에는 공통 속성 인 도시 이름이 있습니다. Cities 배열에 도시 이름이없는 모든 국가를 추가하는 새 배열을 만들어야합니다.
두 배열에서 반복을 시도하고 도시 이름을 비교하고 다른 배열 만 새 배열에 추가했습니다. 결과적으로 첫 번째 도시를 확인하는 동안 다른 이름을 가진 모든 도시가 배열에 추가되므로 Cities 배열의 다른 도시도 이미 거기에 있습니다.
self.filteredCountriesArray = [NSMutableArray new];
for (Country* country in self.countries) {
for (City *city in self.cities) {
if (![country.city isEqualToString:city.name]) {
[self.filteredCountriesArray addObject:country];
}
}
}
제안?
내가 당신이 원하는 것을 이해하는지 확실하지 않지만, 당신이 다음과 같은 것을하고 싶다고 생각합니다.
for (Country *country in self.countries) {
BOOL found = NO;
for (City *city in self.cities) {
if ([country.city isEqualToString:city.name]) {
found = YES;
break;
}
}
if (!found) {
[self.filteredCountriesArray addObject:country];
}
}
속도를 높이기 위해 NSSet
먼저 도시 이름으로를 만듭니다 .
NSMutableSet *cityNames = [NSMutableSet set];
for (City *city in self.cities) {
[cityNames addObject:city.name];
}
for (Country *country in self.countries) {
if (![cityNames containsObject:county.city]) {
[self.filteredCountriesArray addObject:country];
}
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다