Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/119.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
NSString的值在iOS中是NSInteger值吗_Ios_Xcode_Nsstring_Int_Type Conversion - Fatal编程技术网

NSString的值在iOS中是NSInteger值吗

NSString的值在iOS中是NSInteger值吗,ios,xcode,nsstring,int,type-conversion,Ios,Xcode,Nsstring,Int,Type Conversion,我对确定NSString中的文本是否为int值很感兴趣 例如: NSString value = @"something"; int i = value.intValue; // i -> 0 所以我是0,如果文本是真正的int值,它不会给我信息 第二个问题是,如果字符串与int相似: NSString vaue = @"10.10.21.32" int i = value.intValue; // i -> 10 如何确定文本是否为真实的int值 Marko我做了一些代码。它将

我对确定NSString中的文本是否为int值很感兴趣

例如:

NSString value = @"something";
int i = value.intValue;
// i -> 0
所以我是0,如果文本是真正的int值,它不会给我信息

第二个问题是,如果字符串与int相似:

NSString vaue = @"10.10.21.32"
int i = value.intValue;
// i -> 10
如何确定文本是否为真实的int值


Marko

我做了一些代码。它将用于识别字符串是文本、实数还是整数

#define REGEX_NUMBER @"^[0-9.0-9]*$"

NSString *digitString = @"test";

NSPredicate *phoneTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", REGEX_NUMBER];

BOOL isNumber = [phoneTest evaluateWithObject:digitString];

if (isNumber) {

    // String contains digit characters

    if ([digitString rangeOfString:@"."].location == NSNotFound) {

        // String contains real value
        int value = [digitString intValue];

    } else {

        // String contains int value
        double value = [digitString doubleValue];

    }
} else {
    NSLog(@"alpha-numeric value");
    // String contains alpha-numeric values.
}

使用
NSNumberFormatter
,将
lenient
设置为false,并将
allowsFloats
设置为false

NSNumberFormatter *intFormat = [NSNumberFormatter alloc] init];
intFormat.lenient = false;
intFormat.allowsFloats = false;
NSNumber *myNumber = [intFormat numberFromString:value];
int finalValue;
if (myNumber) { // was able to parse OK
    finalValue = [myNumber intValue];
} else {
    // handle invalid strings here
}