NSScaner的一些操作

  • 最近在看YYModel的源码,其中看到的如下代码没有搞懂其中的含义
NSScanner *scanner = [NSScannerscannerWithString:_typeEncoding];

NSString *clsName = nil;

if ([scanner scanUpToCharactersFromSet: [NSCharacterSet characterSetWithCharactersInString:@"\"<"] intoString:&clsName]) {
    if (clsName.length) _cls = objc_getClass(clsName.UTF8String);
 }

  • 后来查阅资料才了解这个是删除scanner中的"""和"<"符号
//下面一句执行语句的的意思是,从开始位置扫描>的字符串
while ([scanner scanString:@"<" intoString:NULL]) {
     NSString* protocol = nil;
     //从刚才扫描的位置一直扫描到>的符号位置,并将期间的字符赋值给protocol
     if ([scanner scanUpToString:@">" intoString: &protocol]) {
         if (protocol.length) {
             if (!protocols) protocols = [NSMutableArray new];
             [protocols addObject:protocol];
         }
     }
        //继续刚才的扫描,从刚才<的位置扫描下一个>的位置,如此往复循环
        [scanner scanString:@">" intoString:NULL];
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容