NSScanner使用

+ (instancetype)scannerWithString:(NSString *)string

初始化一个NSScanner对象 并且指定该对象的String对象;

- (BOOL)scanUpToString:(NSString *)string intoString:(NSString * __nullable * __nullable)result;

表示从当前的scanLocation 开始扫描到指定的string字符串的尾部,同时把从当前scanLocation位置到string字符串尾部的的字符串放到地址为result的内存中;

例如以下代码 (代码引用的是JSPatch开源库中的代码)

 

 

 1     NSString *string = @"MYChoiceAddressVC : UIViewController<UITableViewDataSource, UITableViewDelegate, UITextFieldDelegate>";
 2     NSScanner *scanner = [NSScanner scannerWithString:string];
 3     NSString *className;
 4     NSString *superClassName;
 5     NSString *protocolNames;
 6     [scanner scanUpToString:@":" intoString:&className];
 7     if (!scanner.isAtEnd) {
 8         scanner.scanLocation = scanner.scanLocation + 1;
 9         [scanner scanUpToString:@"<" intoString:&superClassName];
10         if (!scanner.isAtEnd) {
11             scanner.scanLocation = scanner.scanLocation + 1;
12             [scanner scanUpToString:@">" intoString:&protocolNames];
13         }
14     }

 

代码输出

1 className:“MYChoiceAddressVC ”(因为原String中:前面带了空格 ,所以ClassName 后面带空格)
2 
3 superClassName:”UIViewController“
4 
5 protocolNames:”UITableViewDataSource, UITableViewDelegate, UITextFieldDelegate“

 

转载于:https://www.cnblogs.com/yanyan1119/p/5293167.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值