如何使用NSScanner? [英] How to use NSScanner?

查看:128
本文介绍了如何使用NSScanner?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我刚读了Apple的文件
我试图获取该字符串的整数:@user logged(3 attempts)。

I've just read Apple's docu of NSScanner. I'm trying to get the integer of that string: @"user logged (3 attempts)".

我找不到任何示例,在括号内扫描。任何想法?

I can't find any example, how to scan within parentheses. Any ideas?

这里是代码:

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

[aScanner scanInteger:anInteger];

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


推荐答案

`这里是我做的,的字符串

`Here is what I do to get certain values out of a string

首先我定义了此方法

- (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是左侧字符串的字符数

leftOffset is the number of characters for the left string

可能是一个更简单的方法,但这是我的解决方案。

Could be an easier cleaner way but that was my solution.

这篇关于如何使用NSScanner?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆