2

我尝试转换NSStringint,结果 dpPoint:0,我想要 dpPoint:2

dpPointStr = [NSString stringWithFormat:@"%@",[verifyRow valueForKey:@"default_point"]];
NSLog(@"dpPointStr:%@",dpPointStr); //Result dpPointStr:2

int dpPoint = [dpPointStr intValue];
NSLog(@"dpPoint:%i",dpPoint); //Result dpPoint:0
4

3 回答 3

4

In your case, if value is in the beginning/end of the string you can try this:

int val = [[dpPointStr stringByTrimmingCharactersInSet:[[NSCharacterSet decimalDigitCharacterSet] invertedSet]] intValue];
于 2012-12-10T14:43:02.097 回答
0
int str_len = [yourStr length]; char tmp[str_len];

[NSString getCString:tmp maxLength:str_len encoding:UTF8Encoding];

int dpPoint = atoi(tmp);

不要忘记包括这个:#include

我认为这应该工作得很好。

另外,我认为您可以通过以下方式获取 intValue 来解决此问题:

[verifyRow valueForKey:@"default_point"];

为了与 Apple 保持一致,请改用 NSInteger,或者为 valueForKey 语句使用更好的 NSNumber,然后使用 NSInteger。

于 2012-12-10T14:36:25.123 回答
-1

将 NSString 转换为整数

NSString *sampleText = @"5";

int numValue = [sampleText intValue];

NSLog(@"Integer Value: %d", numValue);
于 2013-11-16T12:08:09.337 回答