forked from soffes/sstoolkit
/
NSDictionary+SSToolkitAdditions.h
95 lines (67 loc) · 2.66 KB
/
NSDictionary+SSToolkitAdditions.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
//
// NSDictionary+SSToolkitAdditions.h
// SSToolkit
//
// Created by Sam Soffes on 9/21/10.
// Copyright 2010-2011 Sam Soffes. All rights reserved.
//
/**
Provides extensions to `NSDictionary` for various common tasks.
*/
@interface NSDictionary (SSToolkitAdditions)
///----------------------------
/// @name Creating Dictionaries
///----------------------------
/**
Returns a new dictionary that contains a dictionary for a form encoded string.
@param encodedString A string of form encoded compontents.
@return A new dictionary that contains a dictionary for the form encoded string, or `nil` if `encodedString` is an
invalid representation of a dictionary.
*/
+ (NSDictionary *)dictionaryWithFormEncodedString:(NSString *)encodedString;
///-------------------------------
/// @name Creating Form Components
///-------------------------------
/**
Returns a string of form encoded components for using as the query string in a URL.
@return A string of form encoded compontents.
*/
- (NSString *)stringWithFormEncodedComponents;
///--------------------------
/// @name Deriving New Arrays
///--------------------------
/**
Returns the object returned by `mutableCopyWithZone:` where the zone is `nil`.
This differs from `mutableCopy` in that it makes any contained `NSArray` objects or `NSDictionary` objects mutable as
well. The returned dictionary follows standard memory management conventions for copied objects. You are responsible
for releasing it.
@return The object returned by the `NSMutableCopying` protocol method `mutableCopyWithZone:`, where the zone is `nil`.
*/
- (NSMutableDictionary *)deepMutableCopy NS_RETURNS_RETAINED;
///--------------
/// @name Hashing
///--------------
/**
Returns a string of the MD5 sum of the receiver.
Internally, `NSPropertyListSerialization` is used to created the hash. Only objects that can be serialized should be
contained in the receiver when calling this method.
@return The string of the MD5 sum of the receiver.
*/
- (NSString *)MD5Sum;
/**
Returns a string of the SHA1 sum of the receiver.
Internally, `NSPropertyListSerialization` is used to created the hash. Only objects that can be serialized should be
contained in the receiver when calling this method.
@return The string of the SHA1 sum of the receiver.
*/
- (NSString *)SHA1Sum;
///------------------------
/// @name Accessing Objects
///------------------------
/**
Returns the object for the specified key or `nil` if the value is `[NSNull null]`.
@param key The key used to look up the object in the receiver.
@return The object for the specified key or `nil` if the value is `[NSNull null]`.
*/
- (id)safeObjectForKey:(id)key;
@end