我刚读了NSScanner的《AA>》。
我正在尝试获取该字符串的整数:@“用户已登录(3次尝试)”。
我找不到任何例子,如何在括号内扫描。有什么想法吗?
代码如下:

NSString *logString = @"user logged (3 attempts)";
NSScanner *aScanner = [NSScanner scannerWithString:logString];

[aScanner scanInteger:anInteger];

NSLog(@"Attempts: %i", anInteger);

最佳答案

`下面是我从字符串中获取特定值的方法
首先我定义了这个方法

- (NSString *)getDataBetweenFromString:(NSString *)data leftString:(NSString *)leftData rightString:(NSString *)rightData leftOffset:(NSInteger)leftPos;
{
    NSInteger left, right;
    NSString *foundData;
    NSScanner *scanner=[NSScanner scannerWithString:data];
    [scanner scanUpToString:leftData intoString: nil];
    left = [scanner scanLocation];
    [scanner setScanLocation:left + leftPos];
    [scanner scanUpToString:rightData intoString: nil];
    right = [scanner scanLocation] + 1;
    left += leftPos;
    foundData = [data substringWithRange: NSMakeRange(left, (right - left) - 1)];         return foundData;
}

那就叫它吧。
foundData = [self getDataBetweenFromString:data leftString:@"user logged (" rightString:@"attempts)" leftOffset:13];

LeftOffset是左字符串的字符数
可能是更简单更干净的方法,但那是我的解决办法。

09-28 08:03