Samond Classes Library 1.2.0-RELEASE build 166
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 - 2017 by Samond Development Corporation. All rights reserved.
7 //
8 
21 #import <scl/SCCollection.h>
22 
23 #pragma mark -
24 #pragma mark Константы класса
25 
29 #define SCDictionaryClass @"SCDictionary"
30 #define SC_KEY_DICTIONARY_LIST @"Dictionary"
31 #define SC_KEY_DICTIONARY_ITEM @"Item %llu"
32 #define SC_KEY_DICTIONARY_ITEM_KEY @"Key %llu"
33 #define SC_KEY_DICTIONARY_COUNT @"Count"
34 
75 @interface SCDictionary : SCCollection {
76  NSMutableDictionary *fDictionary; // Внутреннее представление словаря
77 }
78 
102 @property (nonatomic, retain, readonly, getter=allKeys) SCArray *allKeys;
103 
108 @property (nonatomic, retain, readonly, getter=allValues) SCArray *allValues;
109 
123 @property (nonatomic, retain, readonly, getter=keyEnumerator) NSEnumerator *keyEnumerator;
124 
127 #pragma mark -
128 #pragma mark Создание словарей
129 + (SCDictionary *)dictionaryWithCoder:(NSCoder *)coder;
130 + (SCDictionary *)dictionaryWithContentsOfSerializedFile:(NSString *)path;
131 + (SCDictionary *)dictionaryWithDataDictionary:(NSDictionary *)dictionary;
132 + (SCDictionary *)dictionaryWithDataDictionaryFromFile:(NSString *)path;
133 + (SCDictionary *)dictionaryWithStream:(SCStream *)stream;
134 + (SCDictionary *)dictionaryWithFileStream:(NSString *)path;
135 
136 + (SCDictionary *)dictionaryWithName:(NSString *)name;
137 + (SCDictionary *)dictionaryWithObject:(id)object forKey:(NSString *)key;
138 + (SCDictionary *)dictionaryWithObject:(id)object;
139 + (SCDictionary *)dictionaryWithObjects:(id)objects forKeys:(id)keys;
140 + (SCDictionary *)dictionaryWithObjects:(id)object, ... NS_REQUIRES_NIL_TERMINATION;
141 + (SCDictionary *)dictionaryWithObjectsAndKeys:(id)object, ... NS_REQUIRES_NIL_TERMINATION;
142 + (SCDictionary *)dictionaryWithCollection:(id)collection;
143 + (SCDictionary *)dictionaryWithDictionary:(SCDictionary *)dictionary;
144 + (SCDictionary *)dictionary;
145 
146 #pragma mark -
147 #pragma mark Инициализация словарей
148 - (id)initWithName:(NSString *)name;
149 - (id)initWithObject:(id)object forKey:(NSString *)key;
150 - (id)initWithObject:(id)object;
151 - (id)initWithObjects:(id)objects forKeys:(id)keys;
152 - (id)initWithObjects:(id)object, ... NS_REQUIRES_NIL_TERMINATION;
153 - (id)initWithObjectsAndKeys:(id)object, ... NS_REQUIRES_NIL_TERMINATION;
154 - (id)initWithCollection:(id)collection;
155 - (id)initWithDictionary:(SCDictionary *)dictionary;
156 - (id)init;
157 
158 #pragma mark -
159 #pragma mark Копирование словарей
160 - (void)setDictionary:(SCDictionary *)dictionary;
161 
162 #pragma mark -
163 #pragma mark Сравнение словарей
164 - (BOOL)isEqualToDictionary:(SCDictionary *)dictionary;
165 - (BOOL)isEqualToContentsOfDictionary:(SCDictionary *)dictionary;
166 
167 #pragma mark -
168 #pragma mark Добавление и изменение объектов
169 - (void)setObject:(id)object forKey:(NSString *)key;
170 - (void)setByte:(SCByte)value forKey:(NSString *)key;
171 - (void)setUByte:(SCUByte)value forKey:(NSString *)key;
172 - (void)setShort:(SCShort)value forKey:(NSString *)key;
173 - (void)setUShort:(SCUShort)value forKey:(NSString *)key;
174 - (void)setInteger:(SCInteger)value forKey:(NSString *)key;
175 - (void)setUInteger:(SCUInteger)value forKey:(NSString *)key;
176 - (void)setLong:(SCLong)value forKey:(NSString *)key;
177 - (void)setULong:(SCULong)value forKey:(NSString *)key;
178 - (void)setChar:(char)value forKey:(NSString *)key;
179 - (void)setUnichar:(unichar)value forKey:(NSString *)key;
180 - (void)setCharString:(const char *)string forKey:(NSString *)key;
181 - (void)setBool:(BOOL)value forKey:(NSString *)key;
182 - (void)setFloat:(SCFloat)value forKey:(NSString *)key;
183 - (void)setDouble:(SCDouble)value forKey:(NSString *)key;
184 - (void)setObjects:(id)objects forKeys:(id)keys;
185 - (void)setObjectsAndKeys:(id)object, ... NS_REQUIRES_NIL_TERMINATION;
186 
187 - (void)setValue:(id)value forKey:(NSString *)key;
188 - (void)setByteValue:(SCByte)value forKey:(NSString *)key;
189 - (void)setUByteValue:(SCUByte)value forKey:(NSString *)key;
190 - (void)setShortValue:(SCShort)value forKey:(NSString *)key;
191 - (void)setUShortValue:(SCUShort)value forKey:(NSString *)key;
192 - (void)setIntegerValue:(SCInteger)value forKey:(NSString *)key;
193 - (void)setUIntegerValue:(SCUInteger)value forKey:(NSString *)key;
194 - (void)setLongValue:(SCLong)value forKey:(NSString *)key;
195 - (void)setULongValue:(SCULong)value forKey:(NSString *)key;
196 - (void)setCharValue:(char)value forKey:(NSString *)key;
197 - (void)setUnicharValue:(unichar)value forKey:(NSString *)key;
198 - (void)setCharStringValue:(const char *)value forKey:(NSString *)key;
199 - (void)setBoolValue:(BOOL)value forKey:(NSString *)key;
200 - (void)setFloatValue:(SCFloat)value forKey:(NSString *)key;
201 - (void)setDoubleValue:(SCDouble)value forKey:(NSString *)key;
202 - (void)setValues:(id)values forKeys:(id)keys;
203 - (void)setValuesAndKeys:(id)object, ... NS_REQUIRES_NIL_TERMINATION;
204 
205 #pragma mark -
206 #pragma mark Удаление объектов
207 - (void)removeObjectForKey:(NSString *)key;
208 - (void)removeObjectsForKeys:(SCArray *)keys;
209 
210 #pragma mark -
211 #pragma mark Доступ к объектам
212 - (SCArray *)allKeys;
213 - (SCArray *)allValues;
214 - (SCArray *)allKeysForObject:(id)object;
215 
216 - (id)objectForKey:(NSString *)key;
217 - (NSString *)stringForKey:(NSString *)key;
218 - (NSNumber *)numberForKey:(NSString *)key;
219 - (SCByte)byteForKey:(NSString *)key;
220 - (SCUByte)uByteForKey:(NSString *)key;
221 - (SCShort)shortForKey:(NSString *)key;
222 - (SCUShort)uShortForKey:(NSString *)key;
223 - (SCInteger)integerForKey:(NSString *)key;
224 - (SCUInteger)uIntegerForKey:(NSString *)key;
225 - (SCLong)longForKey:(NSString *)key;
226 - (SCULong)uLongForKey:(NSString *)key;
227 - (char)charForKey:(NSString *)key;
228 - (unichar)unicharForKey:(NSString *)key;
229 - (const char *)charStringForKey:(NSString *)key;
230 - (BOOL)boolForKey:(NSString *)key;
231 - (SCFloat)floatForKey:(NSString *)key;
232 - (SCDouble)doubleForKey:(NSString *)key;
233 
234 - (id)valueForKey:(NSString *)key;
235 - (NSString *)stringValueForKey:(NSString *)key;
236 - (NSNumber *)numberValueForKey:(NSString *)key;
237 - (SCByte)byteValueForKey:(NSString *)key;
238 - (SCUByte)uByteValueForKey:(NSString *)key;
239 - (SCShort)shortValueForKey:(NSString *)key;
240 - (SCUShort)uShortValueForKey:(NSString *)key;
241 - (SCInteger)integerValueForKey:(NSString *)key;
242 - (SCUInteger)uIntegerValueForKey:(NSString *)key;
243 - (SCLong)longValueForKey:(NSString *)key;
244 - (SCULong)uLongValueForKey:(NSString *)key;
245 - (char)charValueForKey:(NSString *)key;
246 - (unichar)unicharValueForKey:(NSString *)key;
247 - (const char *)charStringValueForKey:(NSString *)key;
248 - (BOOL)boolValueForKey:(NSString *)key;
249 - (SCFloat)floatValueForKey:(NSString *)key;
250 - (SCDouble)doubleValueForKey:(NSString *)key;
251 
252 #pragma mark -
253 #pragma mark Поиск объектов
254 - (BOOL)containsObjectForKey:(NSString *)key;
255 - (BOOL)containsStringForKey:(NSString *)key;
256 - (BOOL)containsNumberForKey:(NSString *)key;
257 - (BOOL)containsAnyObjectForKeys:(id)keys;
258 - (BOOL)containsAllObjectsForKeys:(id)keys;
259 
260 #pragma mark -
261 #pragma mark Счетчики объектов
262 - (NSEnumerator *)keyEnumerator;
263 
264 @end
uint64_t SCULong
Definition: SCTypes.h:78
int16_t SCShort
Definition: SCTypes.h:42
int64_t SCLong
Definition: SCTypes.h:54
SCArray * allValues
Definition: SCDictionary.h:108
int32_t SCInteger
Definition: SCTypes.h:48
uint32_t SCUInteger
Definition: SCTypes.h:72
int8_t SCByte
Definition: SCTypes.h:36
uint16_t SCUShort
Definition: SCTypes.h:66
uint8_t SCUByte
Definition: SCTypes.h:60
float_t SCFloat
Definition: SCTypes.h:84
NSEnumerator * keyEnumerator
Definition: SCDictionary.h:123
Abstract collections class.
Definition: SCCollection.h:94
Dictionary class.
Definition: SCDictionary.h:75
Array class.
Definition: SCArray.h:77
SCArray * allKeys
Definition: SCDictionary.h:102
double_t SCDouble
Definition: SCTypes.h:90
Abstract parent class of the stream classes hierarchy.
Definition: SCStream.h:242