2012-08-01 24 views
0

這是我MyManager numberOfBedrooms屬性是如何設置的:NSUInteger中錯誤的值。爲什麼?

@property(nonatomic, assign) NSUInteger numberOfBedrooms; 

這是怎麼了我的價值,從一個文本框,分配給它:

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

回答

3

更改爲:

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

你無法進行此鑄造(您正在將對象轉換爲int):

myManager.numberOfBedrooms = (NSUInteger) self.bedroomTextField.text; 

你應該這樣做:

myManager.numberOfBedrooms = [self.bedroomTextField.text intValue]; 
+0

爲什麼的intValue而不是IntegerValue? – jini 2012-08-01 17:44:23

+0

「intValue」是NSString的實例方法,它是在UITextField的.text屬性中返回的對象。 「IntegerValue」不是。 – Stavash 2012-08-01 17:45:14

+0

ohhhhhh好的謝謝 – jini 2012-08-01 17:48:30