- 最近在看YYModel的源碼窘行,其中看到的如下代碼沒有搞懂其中的含義
NSScanner *scanner = [NSScannerscannerWithString:_typeEncoding];
NSString *clsName = nil;
if ([scanner scanUpToCharactersFromSet: [NSCharacterSet characterSetWithCharactersInString:@"\"<"] intoString:&clsName]) {
if (clsName.length) _cls = objc_getClass(clsName.UTF8String);
}
- 后來查閱資料才了解這個(gè)是刪除scanner中的"""和"<"符號(hào)
//下面一句執(zhí)行語句的的意思是资铡,從開始位置掃描>的字符串
while ([scanner scanString:@"<" intoString:NULL]) {
NSString* protocol = nil;
//從剛才掃描的位置一直掃描到>的符號(hào)位置哨苛,并將期間的字符賦值給protocol
if ([scanner scanUpToString:@">" intoString: &protocol]) {
if (protocol.length) {
if (!protocols) protocols = [NSMutableArray new];
[protocols addObject:protocol];
}
}
//繼續(xù)剛才的掃描,從剛才<的位置掃描下一個(gè)>的位置篮赢,如此往復(fù)循環(huán)
[scanner scanString:@">" intoString:NULL];
}