Add category method for the hex number character set

and use a dispatch once to initialize the set only once
This commit is contained in:
iska
2015-10-04 23:50:39 +02:00
parent 43705dac69
commit bf751d94b1
3 changed files with 19 additions and 2 deletions
+2 -1
View File
@@ -8,6 +8,7 @@
#import "HTMLInputStreamReader.h"
#import "HTMLTokenizerCharacters.h"
#import "NSCharacterSet+HTMLKit.h"
#pragma mark - HTMLInputStreamReader
@@ -145,7 +146,7 @@
- (BOOL)consumeHexNumber:(unsigned long long *)result
{
NSCharacterSet *set = [NSCharacterSet characterSetWithCharactersInString:@"0123456789ABCDEFabcdef"];
NSCharacterSet *set = [NSCharacterSet HTMLHexNumberCharacterSet];
NSString *string = nil;
BOOL success = [_scanner scanCharactersFromSet:set intoString:&string];
+1
View File
@@ -11,5 +11,6 @@
@interface NSCharacterSet (HTMLKit)
+ (instancetype)HTMLWhitespaceCharacterSet;
+ (instancetype)HTMLHexNumberCharacterSet;
@end
+16 -1
View File
@@ -12,7 +12,22 @@
+ (instancetype)HTMLWhitespaceCharacterSet
{
return [NSCharacterSet characterSetWithCharactersInString:@" \t\n\r\f"];
static NSCharacterSet *set = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
set = [NSCharacterSet characterSetWithCharactersInString:@" \t\n\r\f"];
});
return set;
}
+ (instancetype)HTMLHexNumberCharacterSet
{
static NSCharacterSet *set = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
set = [NSCharacterSet characterSetWithCharactersInString:@"0123456789ABCDEFabcdef"];
});
return set;
}
@end