// // GTMNSDictionary+CaseInsensitive.h // // Copyright 2009 Google Inc. // // Licensed under the Apache License, Version 2.0 (the "License"); you may not // use this file except in compliance with the License. You may obtain a copy // of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, WITHOUT // WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the // License for the specific language governing permissions and limitations under // the License. // #import #import "GTMDefines.h" /// Utility for building case-insensitive NSDictionary objects. @interface NSDictionary (GTMNSDictionaryCaseInsensitiveAdditions) /// Initializes an NSDictionary with a case-insensitive comparison function /// for NSString keys, while non-NSString keys are treated normally. /// /// The case for NSString keys is preserved, though duplicate keys (when /// compared in a case-insensitive fashion) have one of their values dropped /// arbitrarily. /// /// An example of use with HTTP headers in an NSHTTPURLResponse object: /// /// NSDictionary *headers = /// [NSDictionary gtm_dictionaryWithDictionaryCaseInsensitive: /// [response allHeaderFields]]; /// NSString *contentType = [headers objectForKey:@"Content-Type"]; - (id)gtm_initWithDictionaryCaseInsensitive:(NSDictionary *)dictionary NS_RETURNS_RETAINED NS_CONSUMES_SELF; /// Returns a newly created and autoreleased NSDictionary object as above. + (id)gtm_dictionaryWithDictionaryCaseInsensitive:(NSDictionary *)dictionary; @end