ObjectiveResource을 사용하는 응용 프로그램이 있고 NSNumber 속성이 포함 된 클래스가 있습니다. I는 정수로의 NSNumber 값을 포맷하기 위해 노력하고, 다음 코드가 오전 :ObjectiveResource 및 깨진 NSNumberFormatter
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterCurrencyStyle];
NSLog(@"Price: %@", [formatter stringFromNumber:self.item.price])
NSLog(@"Price: %@", [formatter stringFromNumber:[NSNumber numberWithDouble:[self.item.price doubleValue]]]);
[formatter release];
출력 :
2010-07-15 19 : 33 : 45.371 샘플 [4193 : 207] 알코올 : (널)
2010-07-15 19 : 33 : 45.453 샘플 [4193 : 207] 알코올 : $ 13.50
첫 번째 항목이 출력되는 이유는 (널) 확실하지 않다, 아직 두 번째는 잘 작동합니다. 첫 번째 구문을 사용하고 NSNumber를 다시 만들 필요가 없습니다.
''NSNumber * '로 선언되는'price'는 있습니까? 그냥'NSLog (@ "% @", self.item.price)의 결과는 무엇입니까? – warrenm
@warrenm Price는 NSNumber *이고 NSLog (@ "% @", self.item.price)의 결과는 13.5입니다. –
첫 번째 행은 간단한 테스트에서 작동하므로 범인이 NSNumberFormatter를 벗어날 수 있습니다. KVO를 통해 '가격'변경 사항 등록을 시도 했습니까? 부모 객체가 동시에 업데이트되고 있습니까? – warrenm