Wrong value in NSUInteger. Why?
-
24-06-2021 - |
Domanda
This is how my MyManager numberOfBedrooms property is set:
@property(nonatomic, assign) NSUInteger numberOfBedrooms;
This is how I assign the value to it from a textbox:
myManager.numberOfBedrooms = (NSUInteger) self.bedroomTextField.text;
When i enter a 1 in text box, and do the following, I get large values like 304284 WHy?
NSLog(@"bedrooms is: %@", [NSNumber numberWithUnsignedInt: myManager.numberOfBedrooms] );
NSLog(@"bedrooms is: %d", myManager.numberOfBedrooms );
Soluzione
Change to:
myManager.numberOfBedrooms = (NSUInteger) [self.bedroomTextField.text intValue];
Altri suggerimenti
You can't do this casting (you're converting an object to an int):
myManager.numberOfBedrooms = (NSUInteger) self.bedroomTextField.text;
You should do something like:
myManager.numberOfBedrooms = [self.bedroomTextField.text intValue];
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow