个人收集整理与编写维护的一个 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 信息到文件。
已确保线程安全,简单易扩展。