NSString到int问题

Pau*_* T. 2 iphone objective-c nsstring ipad ios

当我想转换NSStringint
我使用时:

[string intValue];
Run Code Online (Sandbox Code Playgroud)

但是如何确定字符串是否int值?例如,以避免这样的情况:

[@"hhhuuukkk" intValue];
Run Code Online (Sandbox Code Playgroud)

www*_*.se 7

int value;
NSString *s = @"huuuk";
if([[NSScanner scannerWithString:s] scanInt:&value]) {
    //Is int value
}
else {
    //Is not int value
}
Run Code Online (Sandbox Code Playgroud)

编辑:根据Martin R的建议添加isAtEnd检查.这将确保它只是整个字符串中的数字.

int value;
NSString *s = @"huuuk";
NSScanner *scanner = [NSScanner scannerWithString:s];
if([scanner scanInt:&value] && [scanner isAtEnd]) {
    //Is int value
}
else {
    //Is not int value
}
Run Code Online (Sandbox Code Playgroud)