Wrong value in NSUInteger. Why?

501 Views Asked by At

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 );
2

There are 2 best solutions below

0
On BEST ANSWER

Change to:

 myManager.numberOfBedrooms = (NSUInteger) [self.bedroomTextField.text intValue];
2
On

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];