Collection of categories for NSFoundation classes to accelerate development.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
MKFoundationKit
Source
.gitignore
.travis.yml
LICENSE
MKFoundationKit.podspec
README.md

README.md

MKFoundationKit

Twitter License CocoaPods Build Status

MKFoundationKit is a collection of categories for NSFoundation classes to accelerate development.

This library is available through CocoaPods.

License

Source code of this project is available under the standard MIT license. Please see the license file.

API

NSArray Additions

NSArray+MK_Block

- (void)mk_apply:(void (^)(id item))block;

- (void)mk_each:(void (^)(id item))block;

- (instancetype)mk_map:(id (^)(id item))block;

- (id)mk_match:(BOOL (^)(id item))block;

- (id)mk_reduce:(id (^)(id item, id aggregate))block;
- (id)mk_reduce:(id)initial withBlock:(id (^)(id item, id aggregate))block;

- (instancetype)mk_reject:(BOOL (^)(id item))block;

- (instancetype)mk_select:(BOOL (^)(id item))block;

- (BOOL)mk_all:(BOOL (^)(id item))block;

- (BOOL)mk_any:(BOOL (^)(id item))block;

- (BOOL)mk_none:(BOOL (^)(id item))block;

NSArray+MK_Misc

- (id)mk_firstObject;

- (id)mk_max;

- (id)mk_min;

- (instancetype)mk_reverse;

- (BOOL)mk_isEmpty;

NSMutableArray+MK_Misc

- (void)mk_safeAddObject:(id)object;

NSMutableArray+MK_Queue

- (void)mk_enqueueObject:(id)object;
- (id)mk_dequeueObject;

NSMutableArray+MK_Stack

- (void)mk_pushObject:(id)object;
- (id)mk_pullObject;

NSBundle Additions

- (NSString *)mk_build;

- (NSString *)mk_name;

- (NSString *)mk_version;

- (NSString *)mk_infoForKey:(id)key;

NSData Additions

NSData+MK_Base64

+ (NSData *)mk_dataWithBase64EncodedString:(NSString *)string;

- (NSString *)mk_base64DecodedString;
- (NSString *)mk_base64EncodedString;

NSDate Additions

NSDate+MK_Comparison

- (BOOL)mk_isToday;
- (BOOL)mk_isTomorrow;
- (BOOL)mk_isYesterday;

- (BOOL)mk_isThisWeek;
- (BOOL)mk_isNextWeek;
- (BOOL)mk_isLastWeek;
- (BOOL)mk_isSameWeekAsDate:(NSDate *)other;

- (BOOL)mk_isThisYear;
- (BOOL)mk_isNextYear;
- (BOOL)mk_isLastYear;
- (BOOL)mk_isSameYearAsDate:(NSDate *)other;

- (BOOL)mk_isEarlierThanDate:(NSDate *)other;
- (BOOL)mk_isLaterThanDate:(NSDate *)other;

- (BOOL)mk_isEqualToDateIgnoringTime:(NSDate *)other;

NSDate+MK_Components

- (NSInteger)mk_year;
- (NSInteger)mk_month;
- (NSInteger)mk_week;
- (NSInteger)mk_weekday;
- (NSInteger)mk_nthWeekday;
- (NSInteger)mk_day;
- (NSInteger)mk_hour;
- (NSInteger)mk_minutes;
- (NSInteger)mk_seconds;

- (NSDateComponents *)mk_components;

NSDate+MK_Creation

+ (NSDate *)mk_dateTomorrow;
+ (NSDate *)mk_dateYesterday;

+ (NSDate *)mk_dateWithoutTime;
+ (NSDate *)mk_dateWithDaysFromNow:(NSInteger)days;
+ (NSDate *)mk_dateFromString:(NSString *)string;
+ (NSDate *)mk_dateFromString:(NSString *)string withFormat:(NSString *)format;

- (NSDate *)mk_dateWithoutTime;

NSDate+MK_Formatting

+ (NSString *)mk_dateFormatCCCCDDMMMYYYY;
+ (NSString *)mk_dateFormatCCCCDDMMMMYYYY;

+ (NSString *)mk_dateFormatDDMMMYYYY;
+ (NSString *)mk_dateFormatDDMMYYYYDashed;
+ (NSString *)mk_dateFormatDDMMYYYYSlashed;

+ (NSString *)mk_dateFormatDDMMMYYYYSlashed;
+ (NSString *)mk_dateFormatMMMDDYYYY;
+ (NSString *)mk_dateFormatYYYYMMDDDashed;

- (NSString *)mk_formattedString;
- (NSString *)mk_formattedStringUsingFormat:(NSString *)dateFormat;

NSDate+MK_Manipulation

- (NSDate *)mk_dateByAddingDays:(NSInteger)days;
- (NSDate *)mk_dateByAddingWeeks:(NSInteger)weeks;
- (NSDate *)mk_dateByAddingMonths:(NSInteger)months;
- (NSDate *)mk_dateByAddingYears:(NSInteger)years;

- (NSDate *)mk_dateByAddingHours:(NSInteger)hours;
- (NSDate *)mk_dateByAddingMinutes:(NSInteger)minutes;
- (NSDate *)mk_dateByAddingSeconds:(NSInteger)seconds;

- (NSDate *)mk_dateBySubtractingDays:(NSInteger)days;
- (NSDate *)mk_dateBySubtractingWeeks:(NSInteger)weeks;
- (NSDate *)mk_dateBySubtractingMonths:(NSInteger)months;
- (NSDate *)mk_dateBySubtractingYears:(NSInteger)years;

- (NSDate *)mk_dateBySubtractingHours:(NSInteger)hours;
- (NSDate *)mk_dateBySubtractingMinutes:(NSInteger)minutes;
- (NSDate *)mk_dateBySubtractingSeconds:(NSInteger)seconds;

- (NSInteger)mk_differenceInDaysToDate:(NSDate *)toDate;
- (NSInteger)mk_differenceInMonthsToDate:(NSDate *)toDate;
- (NSInteger)mk_differenceInYearsToDate:(NSDate *)toDate;

NSDictionary Additions

NSDictionary+MK_Block

- (void)mk_apply:(void (^)(id item))block;

- (void)mk_each:(void (^)(id item))block;

- (instancetype)mk_map:(id (^)(id item))selectorBlock;

- (id)mk_match:(BOOL (^)(id key, id value))conditionBlock;

- (id)mk_reduce:(id)initial withBlock:(id (^)(id item, id aggregate))accumulatorBlock;

- (instancetype)mk_reject:(BOOL (^)(id key, id value))conditionBlock;

- (instancetype)mk_select:(BOOL (^)(id key, id value))conditionBlock;

- (BOOL)mk_all:(BOOL (^)(id key, id value))conditionBlock;

- (BOOL)mk_any:(BOOL (^)(id key, id value))conditionBlock;

- (BOOL)mk_none:(BOOL (^)(id key, id value))conditionBlock;

NSDictionary+MK_Misc

- (NSMutableDictionary *)mk_dictionaryWithKeys:(NSArray *)keys;
- (NSMutableDictionary *)mk_renameKeysUsingMapping:(NSDictionary *)mapping;

- (BOOL)mk_isEmpty;

NSMutableDictionary+MK_Misc

- (void)mk_safeSetObject:(id)object forKey:(id)key;

NSNumber Additions

NSNumber+MK_Comparison

- (BOOL)mk_isTheSame:(NSNumber *)other;

- (BOOL)mk_isGreaterThan:(NSNumber *)other;

- (BOOL)mk_isLessThan:(NSNumber *)other;

- (BOOL)mk_isEven;

- (BOOL)mk_isOdd;

NSNumber+MK_Creation

+ (instancetype)mk_createFrom:(NSNumber *)number;

- (NSDecimalNumber *)mk_decimalNumber;

NSNumber+MK_Fraction

- (instancetype)mk_integralPart;
- (instancetype)mk_fractionalPart;

- (BOOL)mk_isInteger;
- (BOOL)mk_isFraction;

NSNumber+MK_Manipulation

- (instancetype)mk_add:(NSNumber *)other;

- (instancetype)mk_subtract:(NSNumber *)other;

- (instancetype)mk_multiplyBy:(NSNumber *)other;

- (instancetype)mk_divideBy:(NSNumber *)other;

- (instancetype)mk_raiseToPower:(NSInteger)power;

NSNumber+MK_Negative

+ (instancetype)mk_minusOne;

- (instancetype)mk_negative;
- (instancetype)mk_positive;;

- (instancetype)mk_negate;

- (BOOL)mk_isPositive;
- (BOOL)mk_isNegative;

NSNumber+MK_Precison

+ (NSDecimalNumberHandler *)mk_decimalNumberHandlerWithScale:(short)scale;

- (instancetype)mk_roundedAsMoney;
- (instancetype)mk_roundedWithPrecision:(short)precision;

NSObject Additions

NSObject+MK_AutoDescribe

+ (NSArray *)mk_propertyList;
+ (NSArray *)mk_propertyList:(Class)clazz;

+ (NSArray *)mk_methodListOnly;
+ (NSArray *)mk_methodListOnly:(Class)clazz;

+ (NSArray *)mk_methodList;
+ (NSArray *)mk_methodList:(Class)clazz;

- (void)mk_printObject;
- (void)mk_printObjectKeys:(NSArray *)keys;

- (void)mk_printObjectMethods;
- (void)mk_printObjectMethodsOnly;

- (NSString *)mk_className;

NSSet Additions

NSSet+MK_Block

- (void)mk_apply:(void (^)(id item))block;

- (void)mk_each:(void (^)(id item))block;

- (instancetype)mk_map:(id (^)(id item))selectorBlock;

- (id)mk_match:(BOOL (^)(id item))conditionBlock;

- (id)mk_reduce:(id)initial withBlock:(id (^)(id item, id aggregate))accumulatorBlock;

- (instancetype)mk_reject:(BOOL (^)(id item))conditionBlock;

- (instancetype)mk_select:(BOOL (^)(id item))conditionBlock;

- (BOOL)mk_all:(BOOL (^)(id item))conditionBlock;

- (BOOL)mk_any:(BOOL (^)(id item))conditionBlock;

- (BOOL)mk_none:(BOOL (^)(id item))conditionBlock;

NSString Additions

NSString+MK_Base64

- (NSString *)mk_base64DecodedString;
- (NSString *)mk_base64EncodedString;

- (NSData *)mk_base64DecodedData;
- (NSData *)mk_base64EncodedData;

NSString+MK_Conversion

- (NSNumber *)mk_numberWithInteger;
- (NSNumber *)mk_numberWithLongLong;

NSString+MK_Empty

+ (BOOL)mk_isStringEmptyOrNil:(NSString *)value;

- (BOOL)mk_isEmpty;
- (NSString *)mk_trimmedString;

NSString+MK_Misc

- (NSString *)mk_firstComponentUsingSeparators:(NSCharacterSet *)separators;
- (NSString *)mk_lastComponentUsingSeparators:(NSCharacterSet *)separators;
- (NSString *)mk_componentAtIndex:(NSInteger)index usingSeparators:(NSCharacterSet *)separators;

- (BOOL)mk_containsString:(NSString *)term caseSensitive:(BOOL)caseSensitive;

- (NSInteger)mk_countOccurencesOfString:(NSString *)term;
- (NSInteger)mk_countOccurencesOfString:(NSString *)term caseSensitive:(BOOL)caseSensitive;

- (NSInteger)mk_countOccurencesOfStrings:(NSArray *)terms;
- (NSInteger)mk_countOccurencesOfStrings:(NSArray *)terms caseSensitive:(BOOL)caseSensitive;

- (NSRange)mk_range;

NSString+MK_UTF

+ (NSString *)mk_decodeUTF8String:(NSString *)value;

- (NSString *)mk_decodeUTF8;

NSString+MK_UUID

+ (NSString *)mk_stringWithUUID;

NSString+MK_Validation

+ (BOOL)mk_isStringValidEmail:(NSString *)email;

- (BOOL)mk_isValidEmail;

- (BOOL)mk_matchesRegex:(NSString *)regex;

Contributing

  1. Fork it.
  2. Create your feature branch (git checkout -b new-feature).
  3. Commit your changes (git commit -am 'Added new-feature').
  4. Push to the branch (git push origin new-feature).
  5. Create new Pull Request.