isEqualToArray
실제로 무엇을하는지 알고 싶습니다 .
크기가 160 인 배열이 있는데 각각 11 개의 항목이있는 사전이 포함되어 있지만 첫 번째 열 (행이 변경된 날짜 포함)을 기준으로 간단히 비교할 수 있습니다.
이제 간단한 for-cycle로이를 수행 할 수 있습니다.
BOOL different = FALSE;
for (int index = 0 ; index < [newInfo count] ; ++index)
if (![[[oldInfo objectAtIndex:index] objectForKey:@"Update"] isEqual:[[newInfo objectAtIndex:index] objectForKey:@"Update"]]) {
different = TRUE;
break;
}
if (different) {
}
else
NSLog(@"Contact information hasn't been updated yet");
또는 기본 제공 isEqualToArray 메서드를 사용할 수 있습니다.
if ([oldInfo isEqualToArray:newInfo])
NSLog(@"Contact information hasn't been updated yet");
else {
NSLog(@"Contact information has been updated, saving new contact information");
[newInfo writeToFile:path atomically:YES];
}
이제 각 셀에 대해 isEqualToArray
호출 isEqualTo
만한다고 가정 하면 for-loop 메서드가 1/11 시간 동안 실행됩니다 isEqualToArray
(11 대신 하나의 열만 비교하면 됨).
아마도 최적화에 너무 많은 관심을 가지고있을 것입니다 ... (저는 런타임이 제한되어있는 많은 콘테스트에 참가했고 후유증을 느끼고 있습니다).
두 객체가 모두 배열이라는 것을 알고 있으면 isEqualTo<Class>
메서드가 for 루프보다 동등성을 확인하는 더 빠른 방법입니다.
isEqualTo<Class>
등식에 대한 특정 검사를 제공하는 데 사용 isEqualToArray:
되므로 배열에 동일한 수의 개체가 포함되어 있는지 확인합니다.
그래서 내 지식에 따라 isEqualToArray
두 개체가 배열이라는 것을 알 때 더 나은 옵션 이라고 말할 수 있습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다