오늘 두 개의 버그를 추적하면서 같은 솔루션을 사용하여 두 가지 버그를 해결했습니다.NSNumber와 NSInteger를 비교하십시오.
이제 해결책이 생겼으므로 그 뒤에 명확성을 얻기를 바랍니다.
코어 데이터 (정수 16/NSNumber)의 속성과 정수 (ABPropertyID & ABMultiValueIdentifier)를 비교합니다.
버그가이 비교에 있었고 이상하게도 (백그라운드 트레이에서) 응용 프로그램을 종료하고 다시 열고, 비교를 포함한 동일한 프로세스를 실행 한 후에 만 이상하게 보였습니다. 어쨌든 ...
이것은 다시 시작한 후 작동을 중지 무엇 :
if (myNumber.aProperty == [NSNUmber numberWithInt:anInteger]) { /* do stuff here */ }
을 그리고이 지금까지, 완벽하게 작동하는이 개 솔루션은 다음과 같습니다
if ([myNumber.aProperty integerValue] == anInteger) {/* do stuff here */ }
if ([myNumber.aProperty isEqualToNumber:[NSNumber numberWithInt:anInteger]]) { /* do stuff here */ }
나에게는 모두 똑같이 보입니다. 나는 항상 NSNumber를 integerValue로 변환하거나 정수를 NSNumber로 변환합니다.
아이디어가 있으십니까?
그건 의미가 있습니다.이상하지만, 내 게시물에서 간략하게 언급 한 한 가지 사실은 처음으로 내 앱을 실행할 때 비교가 실제로 작동한다는 것입니다. 그것은 내 응용 프로그램을 죽인 후에 만 다시 열었다가 예기치 않은 결과를보기 시작한 비교를 통해 응용 프로그램을 실행했습니다. 내 앱이나 코드를 전혀 모르는 상태에서 왜 이것이 발생했는지 추측 할 수 있습니까? – djibouti33
@ djibouti33 : 실마리가 ... (그리고 내가 말하는 것은 이것 또한 예측할 수 없다는 것입니다. :) – BoltClock