NSNumber에서 허용하는 가장 높은 정수는 무엇입니까? 나는이 포럼의 다른 곳에서 답을 보았고, 왜 내가 여기서 왜 그렇게 혼란스러워하는지.NSNumber 한도는?
int miles = 35000;
vehicle.mileage = [NSNumber numberWithInt:miles];
NSLog(@"int value = %d", miles);
NSLog(@"mileage = %@", vehicle.mileage);
출력은 다음과 같습니다
는int value = 35000
mileage = -30536
여기 끔찍한 쉽게 누락해야하지만이 제대로 작동하지 않는 이유는 누군가가 나에게 설명 할 수 있습니까?
UPDATE : 더보고 후, vehicle.mileage이 35000에 올바르게 설정지고하지만 난 NSLog를 통해이 문제를 표시 할 때 ("%의 @", vehicle.mileage @)가 잘못 출력됩니다. 나는 지금까지 "~ 마술"가치를 찾지 못했다. 왜냐하면 지금까지는 ~ 30,000까지의 가치에 대해 작동하기 때문이다.
'NSNumber * mileage = [NSNumber numberWithInt : miles]'으로'vehicle.mileage = [NSNumber numberWithInt : mile]'을 대체하고 NSLog (@ "mileage = % @", vehicle.mileage)를 변경하면; 'NSLog (@ "mileage = % @", mileage);'예상되는 결과 :'mileage = 35000'을 얻을 것이므로, 문제는'vehicle'의'mileage' 속성에 있다고 생각합니다. 세터가 뭔가 펑키하지 않는지 확인하십시오. 확실히 'NSNumber'유형입니까? – sjs
올바른 것으로 보입니다. – Minthos
네, 확실히 NSNumber 유형입니다 - @property (비 원자력, 보유) NSNumber * mileage; – kschins