23 #import <Foundation/Foundation.h>
24 #import <scl/SCTypes.h>
25 #import <scl/SCCoding.h>
26 #import <scl/SCDictionaring.h>
27 #import <scl/SCStreaming.h>
28 #import <scl/SCCollectioning.h>
29 #import <scl/SCArray.h>
32 #pragma mark Логические константы
42 #define SC_BOOL_YES @"YES"
48 #define SC_BOOL_NO @"NO"
54 #define SC_BOOL_TRUE @"TRUE"
60 #define SC_BOOL_FALSE @"FALSE"
66 #define SC_BOOL_ON @"ON"
72 #define SC_BOOL_OFF @"OFF"
78 #define SC_BOOL_RU_YES @"ДА"
84 #define SC_BOOL_RU_NO @"НЕТ"
90 #define SC_BOOL_RU_TRUE @"ИСТИНА"
96 #define SC_BOOL_RU_FALSE @"ЛОЖЬ"
102 #define SC_BOOL_RU_ON @"ВКЛ"
108 #define SC_BOOL_RU_OFF @"ВЫКЛ"
111 #pragma mark Строковые константы
121 #define SC_STR_EMPTY @""
127 #define SC_STR_SPACE @" "
129 #pragma mark Константы строковых символов
139 #define SC_STR_ZERO @"0"
145 #define SC_STR_ONE @"1"
151 #define SC_STR_TWO @"2"
157 #define SC_STR_THREE @"3"
163 #define SC_STR_FOUR @"4"
169 #define SC_STR_FIVE @"5"
175 #define SC_STR_SIX @"6"
181 #define SC_STR_SEVEN @"7"
187 #define SC_STR_EIGHT @"8"
193 #define SC_STR_NINE @"9"
196 #pragma mark Символьные константы
206 #define SC_CHR_SPACE ' '
212 #define SC_CHR_TAB '\t'
214 #pragma mark Константы цифровых символов
224 #define SC_CHR_ZERO '0'
230 #define SC_CHR_ONE '1'
236 #define SC_CHR_TWO '2'
242 #define SC_CHR_THREE '3'
248 #define SC_CHR_FOUR '4'
254 #define SC_CHR_FIVE '5'
260 #define SC_CHR_SIX '6'
266 #define SC_CHR_SEVEN '7'
272 #define SC_CHR_EIGHT '8'
278 #define SC_CHR_NINE '9'
284 #define SC_CHR_DOT '.'
290 #define SC_CHR_COMMA ','
296 #define SC_CHR_PLUS '+'
302 #define SC_CHR_MINUS '-'
305 #pragma mark Константы различных форматов
315 #define SC_FMT_OCTAL @"%qo"
321 #define SC_FMT_UDECIMAL @"%qu"
327 #define SC_FMT_SDECIMAL @"%qd"
333 #define SC_FMT_HEX @"%qX"
339 #define SC_FMT_FLOAT @"%f"
345 #define SC_FMT_DOUBLE @"%f"
351 #define SC_FMT_POINTER @"%p"
357 #define SC_FMT_OBJECT @"%@"
360 #pragma mark Константы класса
370 #define NSStringClass @"NSString"
415 @property (nonatomic, retain, readonly, getter=
normalizedString) NSString *normalizedString;
427 @property (nonatomic, retain, readonly, getter=
firstWord) NSString *firstWord;
433 @property (nonatomic, retain, readonly, getter=
lastWord) NSString *lastWord;
439 @property (nonatomic, retain, readonly, getter=
endOfString) NSString *endOfString;
482 @property (nonatomic, assign, readonly, getter=
booleanValue) BOOL booleanValue;
495 @property (nonatomic, retain, readonly, getter=
reversedString) NSString *reversedString;
508 @property (nonatomic, assign, readonly, getter=
empty) BOOL empty;
513 #pragma mark Создание строк
514 + (NSString *)stringWithIndexSet:(NSIndexSet *)indexSet;
515 + (NSString *)stringWithCharacter:(unichar)character;
516 + (NSString *)stringWithCharacter:(unichar)character length:(
SCUInteger)length;
517 + (NSString *)stringWithLength:(
SCUInteger)length;
518 + (NSString *)stringWithPointer:(
void *)pointer;
519 + (NSString *)stringWithID:(
id)object;
522 #pragma mark Инициализация строк
523 - (id)initWithIndexSet:(NSIndexSet *)indexSet;
524 - (id)initWithCharacter:(unichar)character;
525 - (id)initWithCharacter:(unichar)character length:(
SCUInteger)length;
527 - (id)initWithPointer:(
void *)pointer;
528 - (id)initWithID:(
id)object;
531 #pragma mark Поддержка последовательных файлов
532 + (NSString *)stringWithCoder:(NSCoder *)coder;
533 + (NSString *)stringWithContentsOfSerializedFile:(NSString *)path;
534 - (id)initWithContentsOfSerializedFile:(NSString *)path;
535 - (BOOL)writeContentsToSerializedFile:(NSString *)path;
538 #pragma mark Поддержка словарей
539 + (NSString *)stringWithDataDictionary:(NSDictionary *)dictionary;
540 + (NSString *)stringWithDataDictionaryFromFile:(NSString *)path;
541 - (id)initWithDataDictionary:(NSDictionary *)dictionary;
542 - (id)initWithDataDictionaryFromFile:(NSString *)path;
543 - (void)writeToDataDictionary:(NSMutableDictionary *)dictionary;
544 - (void)writeToDataDictionaryFile:(NSString *)path atomically:(BOOL)atomically;
545 - (void)writeToDataDictionaryFile:(NSString *)path;
549 #pragma mark Поддержка потоков
550 + (NSString *)stringWithStream:(
SCStream *)stream;
551 + (NSString *)stringWithFileStream:(NSString *)path;
552 - (id)initWithStream:(
SCStream *)stream;
553 - (id)initWithFileStream:(NSString *)path;
554 - (void)writeToStream:(
SCStream *)stream;
555 - (void)writeToFileStream:(NSString *)path;
556 - (void)appendToFileStream:(NSString *)path;
559 #pragma mark Поддержка коллекций
564 #pragma mark Разделение и замена строк и подстрок
569 - (NSString *)stringWithLeftCharacters:(
SCUInteger)characters;
570 - (NSString *)stringWithRightCharacters:(
SCUInteger)characters;
571 - (NSString *)skipLeftPart:(
SCUInteger)characters;
572 - (NSString *)skipRightPart:(
SCUInteger)characters;
574 - (BOOL)isCorrectRange:(NSRange)range;
575 - (BOOL)existsSubstring:(NSString *)substring caseInsensitive:(BOOL)caseInsensitive;
576 - (BOOL)existsSubstring:(NSString *)substring;
577 - (
SCUInteger)countOfSubstring:(NSString *)substring caseInsensitive:(BOOL)caseInsensitive;
578 - (
SCUInteger)countOfSubstring:(NSString *)substring;
580 - (NSString *)stringWithDeletedSubstring:(NSString *)substring caseInsensitive:(BOOL)caseInsensitive;
581 - (NSString *)stringWithDeletedSubstring:(NSString *)substring;
582 - (NSString *)stringWithDeletedSubstringToIndex:(
SCUInteger)index;
583 - (NSString *)stringWithDeletedSubstringToRange:(NSRange)range;
584 - (NSString *)stringWithDeletedSubstringFromIndex:(
SCUInteger)index;
585 - (NSString *)stringWithDeletedSubstringWithRange:(NSRange)range;
587 - (
SCUInteger)indexOfSubstring:(NSString *)substring caseInsensitive:(BOOL)caseInsensitive;
588 - (
SCUInteger)indexOfSubstring:(NSString *)substring;
589 - (
SCArray *)indexesOfSubstring:(NSString *)substring caseInsensitive:(BOOL)caseInsensitive;
590 - (
SCArray *)indexesOfSubstring:(NSString *)substring;
592 - (NSString *)stringWithReplacedSubstringToIndex:(
SCUInteger)index withString:(NSString *)string;
593 - (NSString *)stringWithReplacedSubstringFromIndex:(
SCUInteger)index withString:(NSString *)string;
594 - (NSString *)stringWithReplacedSubstringWithRange:(NSRange)range withString:(NSString *)string;
595 - (NSString *)stringWithReplacedSubstring:(NSString *)substring
596 withString:(NSString *)string
597 caseInsensitive:(BOOL)caseInsensitive;
598 - (NSString *)stringWithReplacedSubstring:(NSString *)substring withString:(NSString *)string;
600 - (NSString *)stringWithInsertedString:(NSString *)string;
601 - (NSString *)stringWithInsertedString:(NSString *)string index:(
SCUInteger)index;
604 #pragma mark Работа со словами в составе строк
613 #pragma mark Сравнение строк
614 - (BOOL)isEqualToStrings:(NSString *)string, ... NS_REQUIRES_NIL_TERMINATION;
617 #pragma mark Расширение строк
618 - (NSString *)leftExpandedStringToLength:(
SCUInteger)length character:(unichar)character;
619 - (NSString *)leftExpandedStringToLength:(
SCUInteger)length;
620 - (NSString *)leftZeroExpandedStringToLength:(
SCUInteger)length;
621 - (NSString *)rightExpandedStringToLength:(
SCUInteger)length character:(unichar)character;
622 - (NSString *)rightExpandedStringToLength:(
SCUInteger)length;
624 + (NSString *)stringWithLeftExpandedString:(NSString *)string length:(
SCUInteger)length character:(unichar)character;
625 + (NSString *)stringWithLeftExpandedString:(NSString *)string length:(
SCUInteger)length;
626 + (NSString *)stringWithLeftZeroExpandedString:(NSString *)string length:(
SCUInteger)length;
627 + (NSString *)stringWithRightExpandedString:(NSString *)string length:(
SCUInteger)length character:(unichar)character;
628 + (NSString *)stringWithRightExpandedString:(NSString *)string length:(
SCUInteger)length;
630 - (id)initWithLeftExpandedString:(NSString *)string length:(
SCUInteger)length character:(unichar)character;
631 - (id)initWithLeftExpandedString:(NSString *)string length:(
SCUInteger)length;
632 - (id)initWithLeftZeroExpandedString:(NSString *)string length:(
SCUInteger)length;
633 - (id)initWithRightExpandedString:(NSString *)string length:(
SCUInteger)length character:(unichar)character;
634 - (id)initWithRightExpandedString:(NSString *)string length:(
SCUInteger)length;
637 #pragma mark Добавление разделителей групп символов
638 - (NSString *)stringWithSeparator:(NSString *)separator left:(
SCUInteger)left;
639 - (NSString *)stringWithSpacesLeft:(
SCUInteger)left;
640 - (NSString *)stringWithSeparator:(NSString *)separator right:(
SCUInteger)right;
641 - (NSString *)stringWithSpacesRight:(
SCUInteger)right;
643 + (NSString *)stringWithString:(NSString *)string separator:(NSString *)separator left:(
SCUInteger)left;
644 + (NSString *)stringWithString:(NSString *)string spacesLeft:(
SCUInteger)left;
645 + (NSString *)stringWithString:(NSString *)string separator:(NSString *)separator right:(
SCUInteger)right;
646 + (NSString *)stringWithString:(NSString *)string spacesRight:(
SCUInteger)right;
648 - (id)initWithString:(NSString *)string separator:(NSString *)separator left:(
SCUInteger)left;
649 - (id)initWithString:(NSString *)string spacesLeft:(
SCUInteger)left;
650 - (id)initWithString:(NSString *)string separator:(NSString *)separator right:(
SCUInteger)right;
651 - (id)initWithString:(NSString *)string spacesRight:(
SCUInteger)right;
654 #pragma mark Работа с текстовыми представлениями различных типов
669 + (NSString *)stringWithBinaryInteger:(
SCULong)integer capacity:(
SCCapacity)capacity;
670 + (NSString *)stringWithBinaryInteger:(
SCULong)integer;
671 + (NSString *)stringWithOctalInteger:(
SCULong)integer;
672 + (NSString *)stringWithDecimalInteger:(
SCLong)integer separators:(BOOL)separators;
673 + (NSString *)stringWithDecimalInteger:(
SCLong)integer;
674 + (NSString *)stringWithInteger:(
SCLong)integer;
675 + (NSString *)stringWithHexadecimalInteger:(
SCULong)integer capacity:(
SCCapacity)capacity;
676 + (NSString *)stringWithHexadecimalInteger:(
SCULong)integer;
677 + (NSString *)stringWithBool:(BOOL)boolean;
678 + (NSString *)stringWithFloat:(
SCFloat)value;
679 + (NSString *)stringWithDouble:(
SCDouble)value;
682 - (id)initWithBinaryInteger:(
SCULong)integer;
683 - (id)initWithOctalInteger:(
SCULong)integer;
684 - (id)initWithDecimalInteger:(
SCLong)integer separators:(BOOL)separators;
685 - (id)initWithDecimalInteger:(
SCLong)integer;
686 - (id)initWithInteger:(
SCLong)integer;
688 - (id)initWithHexadecimalInteger:(
SCULong)integer;
689 - (id)initWithBool:(BOOL)boolean;
690 - (id)initWithFloat:(
SCFloat)value;
691 - (id)initWithDouble:(
SCDouble)value;
694 #pragma mark Переворачивание строк
696 + (NSString *)stringWithReversedString:(NSString *)string;
697 - (id)initWithReversedString:(NSString *)string;
700 #pragma mark Другие методы
uint64_t SCULong
Definition: SCTypes.h:78
BOOL isHexadecimalString()
Definition: SCString.m:2216
NSString * rtrim()
Definition: SCString.m:907
NSString * firstWord
Definition: SCString.h:427
int64_t SCLong
Definition: SCTypes.h:54
BOOL isFloatString()
Definition: SCString.m:2249
SCULong hexadecimalValue
Definition: SCString.h:476
BOOL isDoubleString()
Definition: SCString.m:2281
SCULong octalValue
Definition: SCString.h:464
uint32_t SCUInteger
Definition: SCTypes.h:72
SCULong binaryValue
Definition: SCString.h:458
NSString * lastWord
Definition: SCString.h:433
Class NSString extentions category.
Definition: SCString.h:388
Standard protocol NSCoding extention protocol.
Definition: SCCoding.h:40
enum _SCCapacity SCCapacity
Integer capacity data type.
Definition: SCTypes.h:293
SCULong decimalValue
Definition: SCString.h:470
enum _SCComparisonResult SCComparisonResult
Instances comparing results type.
Definition: SCCollectioning.h:60
BOOL isOctalString()
Definition: SCString.m:2191
BOOL empty
Definition: SCString.h:508
NSString * normalizedString
Definition: SCString.h:415
Protocol of methods for data exchanging between class instances and classes NSDictionary and NSMutabl...
Definition: SCDictionaring.h:42
NSString * endOfString
Definition: SCString.h:439
NSString * ltrim()
Definition: SCString.m:872
float_t SCFloat
Definition: SCTypes.h:84
NSDictionary * dataDictionary()
Definition: SCString.m:618
id< SCCollectioning > copyObject()
Definition: SCString.m:812
NSString * reversedString
Definition: SCString.h:495
SCUInteger wordsCount
Definition: SCString.h:421
Collections communications protocol.
Definition: SCCollectioning.h:78
NSString * trim()
Definition: SCString.m:939
BOOL isBooleanString()
Definition: SCString.m:2228
Streams communications protocol.
Definition: SCStreaming.h:40
BOOL isBinaryString()
Definition: SCString.m:2179
BOOL booleanValue
Definition: SCString.h:482
BOOL isDecimalString()
Definition: SCString.m:2203
Array class.
Definition: SCArray.h:77
NSString * stringWithUpperFirstLetter()
Definition: SCString.m:2851
double_t SCDouble
Definition: SCTypes.h:90
Abstract parent class of the stream classes hierarchy.
Definition: SCStream.h:242