-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathNAMHelper.h
More file actions
123 lines (99 loc) · 4.81 KB
/
NAMHelper.h
File metadata and controls
123 lines (99 loc) · 4.81 KB
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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
//
// NAMHelper.h
// Vibe-It
//
// Created by Alexei on 13.09.12.
// Copyright (c) 2012 Ora Interactive. All rights reserved.
//
#import <UIKit/UIKit.h>
typedef enum {
NAMCheckStringReturnTypeNil,
NAMCheckStringReturnTypeEmptyString
} NAMCheckStringReturnType;
typedef void (^nam_voidCompletionBlock)(void);
typedef void (^nam_integerCompletionBlock)(NSInteger intValue);
typedef void (^ArrayRequestCompletion)(NSArray *items, NSError *error);
typedef void (^ImageDownloadBlock)(UIImage *image, NSError *error);
typedef void (^ErrorCompletion)(NSError *error);
FOUNDATION_EXPORT NSString *const kUserNotAuthorizedErrorNotification;
FOUNDATION_EXPORT NSString *const kNotificationErrorKey;
FOUNDATION_EXPORT NSString *const kNotificationDataKey;
FOUNDATION_EXPORT NSString *const NAMErrorStatusCode;
FOUNDATION_EXPORT NSString *const NAMErrorCustomCode;
typedef NS_ENUM(NSUInteger, ShapeType) {
CECodeDataFormat = 1,
CECodeNotLoggedIn,
CECodeStoredApiKey,
CECodeEmailAlreadyTaken,
CECodeWrongPassword,
CECodeFacebookPermissions,
CECodeFacebookCancelled,
CECodeChangeIsNotMade,
CECodeObjectNotFound,
CECodeAccountSuspended,
CECodeUserFeedback
};
#define SYSTEM_VERSION_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedSame)
#define SYSTEM_VERSION_GREATER_THAN(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedDescending)
#define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending)
#define SYSTEM_VERSION_LESS_THAN(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedAscending)
#define SYSTEM_VERSION_LESS_THAN_OR_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedDescending)
@interface NAMHelper : NSObject
#ifdef DEBUG
#define DLog(s, ...) NSLog( @"<%p %@:(%d)> %@", self, [[NSString stringWithUTF8String:__FILE__] lastPathComponent], __LINE__, [NSString stringWithFormat:(s), ##__VA_ARGS__] )
#else
#define DLog( s, ... )
#endif
NSString *appErrorDomain(void);
NSString *namErrorDomain(void);
void errorAlert(NSString *text);
void errorAlertOverKeyboard(NSString *text);
void errorAlertInController(NSString *text, UIViewController *controller);
+ (void)errorAlert:(NSString *)text;
void infoAlert(NSString *text);
NSError *nam_unknownError(NSString *someExplanation);
NSDictionary *nam_userInfoWithError(NSError *error);
BOOL smallScreen(void);
BOOL mediumScreen(void);
BOOL iOS8(void);
//UIView
void nam_setViewEnabled(UIView *view, BOOL enabled);
//String
NSString *nam_addS(NSString *string, NSInteger count);
NSString *nam_trimString(NSString *inputStr);
NSString *nam_checkString(id object);
NSString *nam_checkStringWithType(id object, NAMCheckStringReturnType returnType);
NSString *nam_stringExistsAndFilled(id object);
BOOL nam_stringExistsAndFilledBool(id object);
+ (NSString *)fullNameWithFirstName:(NSString *)firstName lastName:(NSString *)lastName;
+ (NSString *)addressWithCity:(NSString *)city state:(NSString *)state zip:(NSString *)zip;
//Paths
NSString *documentsPath(void);
//Dispatching
void nam_dispatchOnQueue(NSString *queueName, void (^block)(void));
void nam_dispatchAfter(double seconds, dispatch_block_t block);
//Color
UIColor *nam_colorWithRGBA(CGFloat red, CGFloat green, CGFloat blue, CGFloat alpha);
//Date
+ (NSString *)formattedDateStringFromString:(NSString *)inputString oldFormat:(NSString *)oldFormat newFormat:(NSString *)newFormat;
+ (NSDate *)dateFromString:(NSString *)dateString usingFormat:(NSString *)dateFormatInString;
+ (NSString *)stringFromDate:(NSDate *)date usingFormatString:(NSString *)formatString;
//Network
+ (NSDictionary *)dictionaryByUrlParams:(NSURL *)url;
+ (NSURL *)urlByCheckingPrefix:(NSString *)originalUrlString baseUrl:(NSString *)baseUrl;
//Validation
BOOL emailIsValid(NSString *candidate);
+ (BOOL)validateDigits:(NSString *)candidate numberOfDigits:(NSUInteger)numberOfDigits;
+ (BOOL)validateDigits:(NSString *)candidate;
+ (BOOL)passwordIsValid:(NSString *)password minimumLenght:(NSUInteger)minimumLenght;
+ (NSArray *)arrayByAddingObject:(id)object toArray:(NSArray *)array;
+ (NSArray *)arrayByRemovingObject:(id)object fromArray:(NSArray *)array;
//Array
+ (NSArray *)nonRepeatingFirstLettersArrayFromStringsArray:(NSArray *)array;
+ (NSArray *)alphabeticallySortedArray:(NSArray *)array ascending:(BOOL)ascending key:(NSString *)key;
//Views
+ (CGRect)frameForAddingViewBelowView:(UIView *)topView toView:(UIView *)superview;
//Keyboard
+ (CGRect)keyboardFrameForNotification:(NSNotification *)notification forView:(UIView *)view;
+ (void)reloadTableHeaderOrFooterViewWithDynamicHeight:(UIView *)view width:(CGFloat)width;
@end