Merge branch 'master' of https://github.com/peymano/AFNetworking into peymano-master
This commit is contained in:
commit
7147ef61bb
1 changed files with 22 additions and 21 deletions
|
|
@ -37,33 +37,34 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
NSSet * AFContentTypesFromHTTPHeader(NSString *string) {
|
NSSet * AFContentTypesFromHTTPHeader(NSString *string) {
|
||||||
static NSCharacterSet *_skippedCharacterSet = nil;
|
static NSCharacterSet *_trimCharacterSet = nil;
|
||||||
static dispatch_once_t onceToken;
|
static dispatch_once_t onceToken;
|
||||||
dispatch_once(&onceToken, ^{
|
dispatch_once(&onceToken, ^{
|
||||||
_skippedCharacterSet = [NSCharacterSet characterSetWithCharactersInString:@" ,"];
|
_trimCharacterSet = [NSCharacterSet whitespaceAndNewlineCharacterSet];
|
||||||
});
|
});
|
||||||
|
|
||||||
if (!string) {
|
if (!string) {
|
||||||
return nil;
|
return nil;
|
||||||
}
|
}
|
||||||
|
|
||||||
NSScanner *scanner = [NSScanner scannerWithString:string];
|
NSArray *mediaRanges = [string componentsSeparatedByString:@","];
|
||||||
scanner.charactersToBeSkipped = _skippedCharacterSet;
|
|
||||||
|
NSMutableSet *mutableContentTypes = [NSMutableSet setWithCapacity:mediaRanges.count];
|
||||||
NSMutableSet *mutableContentTypes = [NSMutableSet set];
|
|
||||||
while (![scanner isAtEnd]) {
|
[mediaRanges enumerateObjectsUsingBlock:^(NSString *mediaRange, NSUInteger idx, BOOL *stop) {
|
||||||
NSString *contentType = nil;
|
|
||||||
if ([scanner scanUpToString:@";" intoString:&contentType]) {
|
NSRange startOfParameters = [mediaRange rangeOfString:@";"];
|
||||||
[scanner scanUpToString:@"," intoString:nil];
|
if (startOfParameters.location != NSNotFound) {
|
||||||
} else {
|
mediaRange = [mediaRange substringToIndex:startOfParameters.location];
|
||||||
[scanner scanUpToCharactersFromSet:_skippedCharacterSet intoString:&contentType];
|
}
|
||||||
}
|
|
||||||
|
mediaRange = [mediaRange stringByTrimmingCharactersInSet:_trimCharacterSet];
|
||||||
if (contentType) {
|
|
||||||
[mutableContentTypes addObject:contentType];
|
if (mediaRange.length > 0)
|
||||||
}
|
[mutableContentTypes addObject:mediaRange];
|
||||||
}
|
|
||||||
|
}];
|
||||||
|
|
||||||
return [NSSet setWithSet:mutableContentTypes];
|
return [NSSet setWithSet:mutableContentTypes];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue