Samond Classes Library 1.2.6-STABLE build 219
SCDictionary.h
Go to the documentation of this file.
1 //
2 // SCDictionary.h
3 // scl
4 //
5 // Created by Viacheslav Smolensky on 13.04.12.
6 // Copyright (c) 2007 - 2018 by Samond Development Corporation. All rights reserved.
7 //
8 
22 #import <Foundation/Foundation.h>
23 #import <scl/NSArray+SCArray.h>
25 #import <scl/SCCollection.h>
26 
27 #pragma mark -
28 #pragma mark Class Constants
29 
38 #define SCDictionaryClass @"SCDictionary"
39 
40 
81  NSMutableDictionary *_dictionary; // Internal data storage
82 }
83 
109 @property (nonatomic, readonly, assign) SCArray *allKeys;
110 
115 @property (nonatomic, readonly, assign) SCArray *allValues;
116 
130 @property (nonatomic, readonly, assign) NSEnumerator *keyEnumerator;
131 
134 #pragma mark -
135 #pragma mark Creating Dictionaries
136 + (instancetype)dictionaryWithCoder:(NSCoder *)coder;
137 + (instancetype)dictionaryWithContentsOfSerializedFile:(NSString *)path;
138 + (instancetype)dictionaryWithDataDictionary:(NSDictionary *)dictionary;
139 + (instancetype)dictionaryWithDataDictionaryFromFile:(NSString *)path;
140 + (instancetype)dictionaryWithStream:(SCStream *)stream;
141 + (instancetype)dictionaryWithFileStream:(NSString *)path;
142 + (instancetype)dictionaryWithData:(NSData *)data;
143 + (instancetype)dictionaryWithContentsOfFile:(NSString *)path;
144 + (instancetype)dictionaryWithContentsOfURL:(NSURL *)url;
145 + (instancetype)dictionaryWithContentsOfURLString:(NSString *)urlString;
146 
147 + (instancetype)dictionaryWithName:(NSString *)name;
148 + (instancetype)dictionaryWithObject:(id<SCCollectioning>)object forKey:(NSString *)key;
149 + (instancetype)dictionaryWithObject:(id<SCCollectioning>)object;
150 + (instancetype)dictionaryWithObjects:(id<SCCollection>)objects forKeys:(id<SCCollection>)keys;
151 + (instancetype)dictionaryWithObjects:(id<SCCollectioning>)object, ... NS_REQUIRES_NIL_TERMINATION;
152 + (instancetype)dictionaryWithObjectsAndKeys:(id<SCCollectioning>)object, ... NS_REQUIRES_NIL_TERMINATION;
153 + (instancetype)dictionaryWithCollection:(id<SCCollection>)collection;
154 + (instancetype)dictionaryWithDictionary:(SCDictionary *)dictionary;
155 + (instancetype)dictionary;
156 
157 #pragma mark -
158 #pragma mark Initializing Dictionaries
159 - (instancetype)initWithName:(NSString *)name;
160 - (instancetype)initWithObject:(id<SCCollectioning>)object forKey:(NSString *)key;
161 - (instancetype)initWithObject:(id<SCCollectioning>)object;
162 - (instancetype)initWithObjects:(id<SCCollection>)objects forKeys:(id<SCCollection>)keys;
163 - (instancetype)initWithObjects:(id<SCCollectioning>)object, ... NS_REQUIRES_NIL_TERMINATION;
164 - (instancetype)initWithObjectsAndKeys:(id<SCCollectioning>)object, ... NS_REQUIRES_NIL_TERMINATION;
165 - (instancetype)initWithCollection:(id<SCCollection>)collection;
166 - (instancetype)initWithDictionary:(SCDictionary *)dictionary;
167 - (instancetype)init;
168 
169 #pragma mark -
170 #pragma mark Copying Dictionaries
171 - (void)setDictionary:(SCDictionary *)dictionary;
172 
173 #pragma mark -
174 #pragma mark Comparing Dictionaries
175 - (BOOL)isEqualToDictionary:(SCDictionary *)dictionary;
176 
177 #pragma mark -
178 #pragma mark Deriving New Dictionaries
179 - (SCDictionary *)dictionaryByAddingObject:(id<SCCollectioning>)object forKey:(NSString *)key;
180 - (SCDictionary *)dictionaryByAddingObject:(id<SCCollectioning>)object;
181 - (SCDictionary *)dictionaryByAddingObjects:(id<SCCollection>)objects forKeys:(id<SCCollection>)keys;
182 - (SCDictionary *)dictionaryByAddingObjects:(id<SCCollectioning>)object, ... NS_REQUIRES_NIL_TERMINATION;
183 - (SCDictionary *)dictionaryByAddingObjectsAndKeys:(id<SCCollectioning>)object, ... NS_REQUIRES_NIL_TERMINATION;
184 - (SCDictionary *)dictionaryByAddingCollection:(id<SCCollection>)collection;
185 - (SCDictionary *)dictionaryByAddingObjectsFromArray:(SCArray *)array;
186 - (SCDictionary *)dictionaryByAddingArray:(SCArray *)array;
187 - (SCDictionary *)dictionaryByAddingEntriesFromDictionary:(SCDictionary *)dictionary;
188 - (SCDictionary *)dictionaryByAddingDictionary:(SCDictionary *)dictionary;
189 
190 #pragma mark -
191 #pragma mark Adding and Changing Objects
192 - (void)setObject:(id<SCCollectioning>)object forKey:(NSString *)key;
193 - (void)setObjects:(id<SCCollection>)objects forKeys:(id<SCCollection>)keys;
194 - (void)setObjectsAndKeys:(id<SCCollectioning>)object, ... NS_REQUIRES_NIL_TERMINATION;
195 - (void)setValue:(id<SCCollectioning>)value forKey:(NSString *)key;
196 - (void)setValues:(id<SCCollection>)values forKeys:(id<SCCollection>)keys;
197 - (void)setValuesAndKeys:(id<SCCollectioning>)object, ... NS_REQUIRES_NIL_TERMINATION;
198 - (void)addObjectsFromArray:(SCArray *)array;
199 - (void)addArray:(SCArray *)array;
200 - (void)addEntriesFromDictionary:(SCDictionary *)dictionary;
201 - (void)addDictionary:(SCDictionary *)dictionary;
202 - (void)addObjects:(id<SCCollection>)objects forKeys:(id<SCCollection>)keys;
203 - (void)addObjectsAndKeys:(id<SCCollectioning>)object, ... NS_REQUIRES_NIL_TERMINATION;
204 - (void)setObject:(id<SCCollectioning>)object forKeyedSubscript:(NSString *)key;
205 
206 #pragma mark -
207 #pragma mark Removing Objects
208 - (void)removeObjectForKey:(NSString *)key;
209 - (void)removeObjectsForKeys:(SCArray *)keys;
210 
211 #pragma mark -
212 #pragma mark Querying a Dictionary
213 - (SCArray *)allKeysForObject:(id<SCCollectioning>)object;
214 - (id)objectForKey:(NSString *)key;
215 - (id)objectForKeyedSubscript:(NSString *)key;
216 - (id)valueForKey:(NSString *)key;
217 
218 #pragma mark -
219 #pragma mark Finding Objects and Keys in a Dictionary
220 - (BOOL)containsObjectForKey:(NSString *)key;
221 - (BOOL)containsStringForKey:(NSString *)key;
222 - (BOOL)containsNumberForKey:(NSString *)key;
223 - (BOOL)containsAnyObjectForKeys:(id<SCCollection>)keys;
224 - (BOOL)containsAllObjectsForKeys:(id<SCCollection>)keys;
225 - (BOOL)containsKey:(NSString *)key;
226 - (BOOL)containsKeys:(NSString *)key, ... NS_REQUIRES_NIL_TERMINATION;
227 - (BOOL)containsKeysFromCollection:(id<SCCollection>)collection;
228 - (BOOL)containsAnyKey:(NSString *)key, ... NS_REQUIRES_NIL_TERMINATION;
229 - (BOOL)containsAnyKeyFromCollection:(id<SCCollection>)collection;
230 
231 @end
Mutable keyed collection protocol.
Definition: SCCollectionProtocols.h:1065
Caregory NSArray(SCArray) header file.
Collections communications protocol.
Definition: SCCollectioning.h:79
Category NSDictionary(SCDictionary) header file.
Abstract collections class.
Definition: SCCollection.h:98
Class SCCollection header file.
Keyed collections protocol.
Definition: SCCollectionProtocols.h:996
Dictionary class.
Definition: SCDictionary.h:80
Array class.
Definition: SCArray.h:84
Abstract parent class of the stream classes hierarchy.
Definition: SCStream.h:224