个人收集整理与编写维护的一个 iOS 开发工具库
recognizer 封装
封装了 UITapGestureRecognizer 等 Recognizer,使用 Block 作为动作触发的回调。
layer
便捷地修改 UIView 的 layer 属性,添加不同方向的 border,裁剪为圆。
便捷的时间对比与计算。
例如:
- (BOOL) isToday; - (BOOL) isTomorrow; - (BOOL) isYesterday; - (BOOL) isTheDayAfterTomorrow;
便捷的地理位置坐标转换器,将火星坐标转到地球坐标等便捷中国特色功能
便捷的hud通知调用,全部通过类方法调用。方便快捷。
一些检测 String 的便捷方法,封装了正则匹配等一些匹配。
- (BOOL)isMobileNumber:(NSString *)mobileNum - (BOOL)isCarNumber; - (BOOL)isURL; + (NSURL *)HTTPURLFromString:(NSString *)string;
一些常用的宏:
例如检测设备
#define IS_IPHONE_5 (IS_IPHONE && SCREEN_MAX_LENGTH == 568.0) #define IS_IPHONE_6 (IS_IPHONE && SCREEN_MAX_LENGTH == 667.0) #define IS_IPHONE_6P (IS_IPHONE && SCREEN_MAX_LENGTH == 736.0)
定制 NSLog:
#ifdef DEBUG # define DLog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__); #else # define DLog(...) #endif
来自 libextobjc 中的一个模块。感谢它为我们带来方便打破 block 循环引用的工具。
用法:
@weakify(self) [self.context performBlock:^{ // Analog to strongSelf in previous code snippet. @strongify(self)// You can just reference self as you normally would. Hurray. NSError *error; [self.context save:&error]; // Do something
}];
延伸:
简单的日志工具。直接通过 LOG 保存 Debug 信息到文件。
已确保线程安全,简单易扩展。