aboutsummaryrefslogtreecommitdiff
path: root/Foundation/GTMNSDictionary+CaseInsensitive.h
diff options
context:
space:
mode:
authorGravatar gtm.daemon <gtm.daemon@7dc7ac4e-7543-0410-b95c-c1676fc8e2a3>2009-09-03 00:01:14 +0000
committerGravatar gtm.daemon <gtm.daemon@7dc7ac4e-7543-0410-b95c-c1676fc8e2a3>2009-09-03 00:01:14 +0000
commit94c15346143f56b9b246e3c8dee64ec844acae88 (patch)
tree8921ed567e7a9bba0919b6ca0109fb6338fc870a /Foundation/GTMNSDictionary+CaseInsensitive.h
parentac02ae31d09fcdfb4d92ea61062cf6528744c9c2 (diff)
[Author: iwade]
Add NSData hex conversion routines. Add a case-insensitive NSDictionary constructor. I have a need for both pieces of functionality in an iPhone app I'm developing. R=dmaclach,thomasvl APPROVED=dmaclach DELTA=521 (521 added, 0 deleted, 0 changed)
Diffstat (limited to 'Foundation/GTMNSDictionary+CaseInsensitive.h')
-rw-r--r--Foundation/GTMNSDictionary+CaseInsensitive.h42
1 files changed, 42 insertions, 0 deletions
diff --git a/Foundation/GTMNSDictionary+CaseInsensitive.h b/Foundation/GTMNSDictionary+CaseInsensitive.h
new file mode 100644
index 0000000..a31e81c
--- /dev/null
+++ b/Foundation/GTMNSDictionary+CaseInsensitive.h
@@ -0,0 +1,42 @@
+//
+// 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 <Foundation/Foundation.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;
+
+/// Returns a newly created and autoreleased NSDictionary object as above.
++ (id)gtm_dictionaryWithDictionaryCaseInsensitive:(NSDictionary *)dictionary;
+
+@end