我在我的项目中使用了多年的Objective-C类。
有些分类不是我写的,因此我在头文件注释中添加了原始源代码,但我可能遗漏了一些。
如果是这样,请毫不犹豫地告诉我,我将更新头文件以添加原始源代码。
只需根据适当的参数调用您要使用的方法。
CocoaPods: pod 'GONCategories'
手动: 将您的项目的<强>Classes强>文件夹复制过去
在您的项目中导入所需的头文件。 .pch是一个不错的选择;)
您还可以导入<强> GON_Categories_All.h强>以将项目中的所有分类添加进去。
<强> GON_Categories_All.h强>:导入所有分类
<强> GON_CoreData_All.h强>:导入所有使用core data相关分类
<强> GON_FoundationExtensions_All.h强>:导入所有与Foundation相关的分类
<强> GON_UIKitExtensions_All.h强>:导入所有与UIKit相关的分类
<强> GON_StoreKitExtensions_All.h强>:导入所有与StoreKit相关的分类
/* Fetch one object using given key and value. Usefull to fetch objects on their uid key
* /!\ Warning, errors are ignored /!\
*/
- (id)fetchObject:(NSString *)entityName usingValue:(id)value forKey:(NSString *)key returningAsFault:(BOOL)fault;
/* Fetch one object using given predicate
* /!\ Warning, errors are ignored /!\
*/
- (id)fetchObject:(NSString *)entityName usingPredicate:(NSPredicate *)predicate returningAsFault:(BOOL)fault;
/* Count all objects for given entity.
* /!\ Warning, errors are ignored /!\
*/
- (NSInteger)countObjects:(NSString *)entityName;
/* Count all objects using given predicate
* /!\ Warning, errors are ignored /!\
*/
- (NSInteger)countObjects:(NSString *)entityName usingPredicate:(NSPredicate *)predicate;
/* Fetch all objects for given entity.
* /!\ Warning, errors are ignored /!\
*/
- (NSArray *)fetchObjects:(NSString *)entityName returningAsFault:(BOOL)fault;
/* Fetch all objects using given predicate
* /!\ Warning, errors are ignored /!\
*/
- (NSArray *)fetchObjects:(NSString *)entityName usingPredicate:(NSPredicate *)predicate returningAsFault:(BOOL)fault;
/* Fetch all objects for given entity and sort them.
* /!\ Warning, errors are ignored /!\
*/
- (NSArray *)fetchObjects:(NSString *)entityName usingSortDescriptors:(NSArray *)sortDescriptors returningAsFault:(BOOL)fault;
/* Fetch all objects for given entity, using predicate and sort them.
* /!\ Warning, errors are ignored /!\
*/
- (NSArray *)fetchObjects:(NSString *)entityName usingPredicate:(NSPredicate *)predicate usingSortDescriptors:(NSArray *)sortDescriptors returningAsFault:(BOOL)fault;
/* Create fetch request to fetch one object using given key and value. Usefull to fetch objects on their uid key */
- (NSFetchRequest*)fetchRequestForEntityObject:(NSString*)entityName usingValue:(id)value forKey:(NSString*)key returningAsFault:(BOOL)fault;
/* Create fetch request to fetch one object using given predicate
*/
- (NSFetchRequest*)fetchRequestForEntityObject:(NSString*)entityName usingPredicate:(NSPredicate*)predicate returningAsFault:(BOOL)fault;
/* Create fetch request to fetch all objects for given entity.
*/
- (NSFetchRequest*)fetchRequestForEntityObjects:(NSString*)entityName returningAsFault:(BOOL)fault;
/* Create fetch request to fetch all objects using given predicate
*/
- (NSFetchRequest*)fetchRequestForEntityObjects:(NSString*)entityName usingPredicate:(NSPredicate*)predicate returningAsFault:(BOOL)fault;
/* Create fetch request to fetch all objects for given entity and sort them.
*/
- (NSFetchRequest*)fetchRequestForEntityObjects:(NSString*)entityName usingSortDescriptors:(NSArray*)sortDescriptors returningAsFault:(BOOL)fault;
/* Create fetch request to fetch all objects for given entity, using predicate and sort them.
*/
- (NSFetchRequest*)fetchRequestForEntityObjects:(NSString*)entityName usingPredicate:(NSPredicate*)predicate usingSortDescriptors:(NSArray*)sortDescriptors returningAsFault:(BOOL)fault;
/* Delete all given objects*/
- (void)deleteObjects:(id <NSFastEnumeration>)objects;
/* Must be implemented in subclasses to provide an array of NSSortDescriptors used in fetch request */
+ (NSArray *)sortDescriptors;
@interface NSManagedObject (PropertyExtraction)
/* Return an array of dictionaries containing values for asked properties names.
* Request is executed on class entity
*/
+ (NSArray *)valuesForProperties:(NSArray *)propertiesNames usingPredicate:(NSPredicate *)predicate managedObjectContext:(NSManagedObjectContext *)context;
/* Return an array of values for asked property name
* Request is executed on class entity */
+ (NSArray *)valuesForProperty:(NSString *)propertyName usingPredicate:(NSPredicate *)predicate managedObjectContext:(NSManagedObjectContext *)context;
/* Return NSPropertyDescription for current entity, describing given attribute name */
+ (NSPropertyDescription*)propertyDescriptionForAttribute:(NSString*)attributeName inManagedObjectContext:(NSManagedObjectContext*)moc;
/* Return an array of NSPropertyDescription for current entity, describing given attributes name */
+ (NSArray *)propertiesDescriptionForAttributes:(NSArray*)attributesName inManagedObjectContext:(NSManagedObjectContext*)moc;
/* Return NSEntityDescription for current entity */
+ (NSEntityDescription*)entityDescription:(NSManagedObjectContext*)moc;
/* Create fetch request to fetch one object using given key and value. Usefull to fetch objects on their uid key */
+ (NSFetchRequest*)fetchRequestUsingValue:(id)value forKey:(NSString*)key returningAsFault:(BOOL)fault forManagedObjectContext:(NSManagedObjectContext*)moc;
/* Create fetch request to fetch one object using given predicate
*/
+ (NSFetchRequest*)fetchRequestUsingPredicate:(NSPredicate*)predicate returningAsFault:(BOOL)fault forManagedObjectContext:(NSManagedObjectContext*)moc;
/* Create fetch request to fetch all objects for given entity.
*/
+ (NSFetchRequest*)fetchRequestForAllEntitiesReturningAsFault:(BOOL)fault forManagedObjectContext:(NSManagedObjectContext*)moc;
/* Create fetch request to fetch all objects using given predicate
*/
+ (NSFetchRequest*)fetchRequestForAllEntitiesUsingPredicate:(NSPredicate*)predicate returningAsFault:(BOOL)fault forManagedObjectContext:(NSManagedObjectContext*)moc;
/* Create fetch request to fetch all objects for given entity and sort them.
*/
+ (NSFetchRequest*)fetchRequestForAllEntitiesUsingSortDescriptors:(NSArray*)sortDescriptors returningAsFault:(BOOL)fault forManagedObjectContext:(NSManagedObjectContext*)moc;
/* Create fetch request to fetch all objects for given entity, using predicate and sort them.
*/
+ (NSFetchRequest*)fetchRequestForAllEntitiesUsingPredicate:(NSPredicate*)predicate usingSortDescriptors:(NSArray*)sortDescriptors returningAsFault:(BOOL)fault forManagedObjectContext:(NSManagedObjectContext*)moc;
/* Create fetch request to fetch all objects for given entity. Class default sort descriptors are set.
* You have to add a + (NSArray *)sortDescriptors method in your entity class to provide your own sort descriptors
*/
+ (NSFetchRequest*)fetchRequestForAllSortedEntitiesReturningAsFault:(BOOL)fault forManagedObjectContext:(NSManagedObjectContext*)moc;
/* Create fetch request to fetch all objects using given predicate. Class default sort descriptors are set.
* You have to add a + (NSArray *)sortDescriptors method in your entity class to provide your own sort descriptors
*/
+ (NSFetchRequest*)fetchRequestForAllSortedEntitiesUsingPredicate:(NSPredicate*)predicate returningAsFault:(BOOL)fault forManagedObjectContext:(NSManagedObjectContext*)moc;
/* Return a configured FetchedResultsController */
+ (NSFetchedResultsController*)fetchedResultsControllerForFetchRequest:(NSFetchRequest*)fetchRequest delegate:(id <NSFetchedResultsControllerDelegate>)delegate usingManagedObjectContext:(NSManagedObjectContext*)moc;
/* Return a configured FetchedResultsController using given cache */
+ (NSFetchedResultsController*)fetchedResultsControllerForFetchRequest:(NSFetchRequest*)fetchRequest cache:(NSString*)cache delegate:(id <NSFetchedResultsControllerDelegate>)delegate usingManagedObjectContext:(NSManagedObjectContext*)moc;
/* Return a configured FetchedResultsController using given section name */
+ (NSFetchedResultsController*)fetchedResultsControllerForFetchRequest:(NSFetchRequest*)fetchRequest sectionName:(NSString*)sectionName delegate:(id <NSFetchedResultsControllerDelegate>)delegate usingManagedObjectContext:(NSManagedObjectContext*)moc;
/* Return a configured FetchedResultsController using given cache and section name */
+ (NSFetchedResultsController*)fetchedResultsControllerForFetchRequest:(NSFetchRequest*)fetchRequest cache:(NSString*)cache sectionName:(NSString*)sectionName delegate:(id <NSFetchedResultsControllerDelegate>)delegate usingManagedObjectContext:(NSManagedObjectContext*)moc;
/* Return a configured FetchedResultsController using a generated cache name */
+ (NSFetchedResultsController*)fetchedResultsControllerCachedForFetchRequest:(NSFetchRequest*)fetchRequest delegate:(id <NSFetchedResultsControllerDelegate>)delegate usingManagedObjectContext:(NSManagedObjectContext*)moc;
/* Return a configured FetchedResultsController using a generated cache name and given section name */
+ (NSFetchedResultsController*)fetchedResultsControllerCachedForFetchRequest:(NSFetchRequest*)fetchRequest sectionName:(NSString*)sectionName delegate:(id <NSFetchedResultsControllerDelegate>)delegate usingManagedObjectContext:(NSManagedObjectContext*)moc;
``
##Foundation
###GON_NSArray+Utils
/* 返回数组的随机副本 */
/* 返回数组的反转版本 */
/* 使用给定的valueForKey字段作为字典的键,将给定数组转换为字典。
/* 返回通过在每个对象上调用valueForKey:key构建的数组。
/* 返回深度可变副本 */
@property (nonatomic, readonly) NSRange range; // 返回数组的范围(0,count)
###GON_NSArray+SortedArray
/* 假设数组是有序的,使用给定函数检索对象插入索引 */
/* 假设数组是有序的,使用给定选择器检索对象插入索引 */
/* 假设数组是有序的,使用给定排序描述符检索对象插入索引 */
/* 假设数组是有序的,使用给定块检索对象插入索引 */
###GON_NSData+Base64
/* 从NSData返回一个base 64编码的字符串 */
###GON_NSData+String
/* 将数据作为十六进制字符串返回 */
/* 将数据作为UTF8编码的字符串返回 */
###GON_NSDate+Utils
/* 昨日的构造函数 */
/* 今天的构造函数 */
/* 明天的构造函数 */
/* 判断是否是昨天 */
/* 判断是否是今天 */
/* 判断是否是明天 */
/* 通过添加给定天数创建一个新日期 */
/* 从日期中构建昨天日期,保持小时 */
/* 从日期中构建明天日期,保持小时 */
/* 构建并返回一个日期,去除小时信息 */
/* 将本地时间日期转换为GMT时间 */
/* 将日期转换为本地时间,假设日期是GMT日期 */
/* 忽略时间信息比较两个日期 */
###GON_NSDictionary+Utils
/* 与objectForKey:相同,但如果对象是[NSNull null],则返回nil */
/* 与objectForKeyOrNil:相同,但如果没有找到值,则返回defaultValue */
/* 与objectForKey:相同,但如果没有找到值,则返回defaultValue */
/* 假设字典值是NSSet对象,因此返回关联到键的一个anyObject */
/* 返回反转字典,使用键作为值,反之亦然。
/* 检查字典是否具有给定键 */
/* 返回深度可变副本 */
###GON_NSFileManager+Utils
/* 返回给定路径项的大小。
/* 检查给定的文件是否是目录 */
###GON_NSHTTPURLResponse+Error
/* 基于URL响应生成NSError对象
@property (nonatomic, readonly) BOOL hasError; // 判断状态码是否匹配错误
###GON_NSIndexPath+Offset
/* 计算前一行的indexPath */
/* 计算后一行的indexPath */
/* 计算前一项的indexPath */
/* 计算后一项的indexPath */
/* 计算后一节的indexPath */
/* 计算前一节的indexPath */
###GON_NSMutableArray+SortedArray
/* 向数组中插入对象,假设数组已排序,使用指定的函数 */
/* 向数组中插入对象,假设数组已排序,使用指定的选择器 */
/* 向数组中插入对象,假设数组已排序,使用指定的排序描述符 */
/* 假设数组是有序的,使用给定块检索对象插入索引 */
###GON_NSMutableArray+Utils
/* 在数组中插入对象于第一个位置 */
/* 从数组中移除第一个对象。等同于 [self removeObjectAtIndex:0]。 */
/* 打乱数组 */
###GON_NSMutableDictionary+Set
/* 与 setObject:forKey:类似,但在 NSMutableSet 中添加值 */
/* 与 setObject:forKey:类似,但在 NSMutableSet 中合并所有值 */
/* 与 removeObjectForKey:类似,但从创建的集中移除值。如果操作后集合为空,则将其移除。 */
###GON_NSMutableDictionary+Array
/* 与 setObject:forKey:类似,但在 NSMutableArray 中添加值 */
/* 与 setObject:forKey:类似,但在 NSMutableArray 中合并所有值 */
/* 与 removeObjectForKey:类似,但从创建的数组中移除值。如果操作后数组为空,则将其移除。 */
###GON_NSMutableDictionary+SortedArray
/* 与 setObject:forKey:类似,但在使用给定函数排序的 sorted NSMutableArray 中添加值 */
/* 与 setObject:forKey:类似,但在使用给定选择器排序的 sorted NSMutableArray 中添加值 */
/* 与 setObject:forKey:类似,但在使用给定描述符排序的 sorted NSMutableArray 中添加值 */
/* 与 setObject:forKey:类似,但在使用给定块排序的 sorted NSMutableArray 中添加值 */
###GON_NSMutableString+Utils
/* 压缩字符串
/* 将字符串的第一个字母转换为大写
/* 将字符串的第一个字母转换为小写
/* 移除所有重音符号
/* 向字符串中添加非断行空格字符
/* 将所有HTML实体替换为UTF-8字符
/* 向字符串中添加HTML实体
###GON_NSNotification+Constructors
/* 使用给定的名称和发送者构建通知,使用anObject和key构建用户信息 */
###GON_NSNotificationCenter+MainThread
/* 在主线程上发布给定的通知 */
/* 在主线程上发布给定的通知名称 */
/* 在主线程上发布给定的通知名称和用户信息 */
/* 在主线程上发布给定的通知,允许等待直到完成 */
/* 在主线程上发布给定的通知名称,允许等待直到完成 */
/* 在主线程上发布给定的通知名称和用户信息,允许等待直到完成 */
###GON_NSObject+Block
/* 在主队列上执行一个块,没有延迟。发送是同步的*/
/* 在主队列上执行一个块,没有延迟。发送是异步的*/
/* 在主队列上执行一个块,在延迟后*/
/* 在后台队列上执行一个块,没有延迟。发送是异步的*/
/* 在后台队列上执行一个块,没有延迟。发送是同步的*/
/* 在指定的队列上执行一个块,在延迟后*/
###GON_NSNumber+Compare
/* 返回self和另一个数字之间较大的一个。类似于MAX,用于NSNumber。
/* 返回self和另一个数字之间较小的一个。类似于MIN,用于NSNumber
###GON_NSString+Base64
/* 从字符串中返回数据,假设是一个base 64编码的字符串 */
###GON_NSString+Crypto
/* 返回基于字符串的SHA256散列字符串 */
/* 返回基于字符串转换为utf16后的SHA256散列 */
/* 返回基于字符串的MD5散列 */
/* 返回基于字符串转换为utf16后的MD5散列 */
###GON_NSString+SQL
/* 返回通过转义'字符清洁的SQL值 */
###GON_NSString+Utils
/* 返回一个新字符串,初始化为一个生成的UUID */
/* 返回一个新字符串,将给定的后缀附加到它,假设它是一个路径。
/* 返回YES如果字符串包含给定的字符串 */
/* 返回YES如果字符串以给定的字符串开头 */
/* 返回YES如果字符串以给定的字符串结尾 */
/* 返回剪过的字符串 */
/* 返回一个字符串,添加了非分隔空格字符
/* 返回第一个字母大写的相同字符串 */
/* 返回第一个字母小写的相同字符串 */
/* 返回移除了所有变音符号标记的相同字符串 */
/* 返回字符串的range */
/* 返回一个URL编码的字符串 */
/* 返回一个字符串,其中所有HTML实体都被UTF-8字符替代 */
/* 返回一个字符串,需要时添加HTML实体 */
###GON_NSURL+Utils
/* 返回查询参数 */
###GON_NSURL+Split
/* 根据baseURL计算基于值连接的URL数组
/* 基于baseURL,通过连接值计算URL。
##UIKit
###GON_UIColor+Utils
/* 根据当前颜色返回最佳前景色。
###GON_UIControl+Utils
/* 删除给定控制事件的全部目标 */
/* 删除全部目标 */
###GON_UIDevice+Information
@property (nonatomic, readonly) NSString *platform; @property (nonatomic, readonly) NSUInteger coresCount;
###GON_UIImage+Colors
/* 返回图像的灰度版本。如果发生错误,返回nil */
###GON_UIImage+Utils
/* 返回给定路径图像的大小,无需将其加载到内存中 */
/* 返回给定URL图像的大小,无需将其加载到内存中 */
/* 返回NSData PNG图像表示 */
/* 返回NSData JPG图像表示 */
###GON_UILabel+AttributedFitting
/* 更新标签文本并允许其框架适应以显示所有文本,同时保持当前宽度。
/* 更新标签框架以显示所有文本,同时保持当前宽度。
/* 更新标签文本并允许其框架适应以显示所有文本,同时在单行内显示。
/* 更新标签文本并允许其框架适应以显示尽可能多的文本,受给定高度限制。
/* 更新标签文本并允许其框架适应以显示尽可能多的文本,受给定宽度限制。
/* 更新标签文本并允许其框架适应以显示尽可能多的文本,受给定高度限制。
/* 更新标签文本并允许其框架适应以显示尽可能多的文本,受给定宽度限制。
/* 更新标签框架以显示所有文本在单行中。
/* 更新标签框架以显示尽可能多的文本在单行中,受给定宽度限制
/* 更新标签框架以显示尽可能多的文本在多行中,受给定高度限制
###GON_UILabel+Fitting
/* 更新标签文本并允许其框架适应以显示所有文本,同时保持当前宽度。
/* 更新标签框架以显示所有文本,同时保持当前宽度。
/* 更新标签文本并允许其框架适应以显示所有文本,同时在单行内显示。
/* 更新标签文本并允许其框架适应以显示尽可能多的文本,受给定高度限制。
/* 更新标签文本并允许其框架适应以显示尽可能多的文本,受给定宽度限制。
/* 更新标签文本并允许其框架适应以显示尽可能多的文本,受给定高度限制。
/* 更新标签文本并允许其框架适应以显示尽可能多的文本,受给定宽度限制。
/* 更新标签框架以显示所有文本在单行中。
/* 更新标签框架以显示尽可能多的文本在单行中,受给定宽度限制
/* 更新标签框架以显示尽可能多的文本在多行中,受给定高度限制
###GON_UINavigationController+Utils
/* 弹出当前视图控制器,带有动画。等同于 popViewControllerAnimated:YES */
/* 弹出到根视图控制器,带有动画。等同于 popToRootViewController:YES */
/* 弹出当前视图控制器,没有动画。等同于 popViewControllerAnimated:NO */
/* 弹出到根视图控制器,没有动画。等同于 popToRootViewController:NO */
###GON_UITableView+Reload
/* 使用给定的行动画重新加载显示的行
/* 使用动画重新加载给定索引路径的行
###GON_UITableView+Cells
/* 在给定索引路径插入一行
/* 从给定索引路径删除一行
###GON_UIView+Bounds
/* 更新视图边界X原点
/* 更新视图边界Y原点
/* 更新视图边界宽度
/* 更新视图边界高度
/* 将视图边界X原点增加incX
/* 将视图边界Y原点增加incY
/* 将视图边界宽度增加incWidth
/* 将视图边界高度增加incHeight
###GON_UIView+Fitting
/* 更新视图框架,将其相对于父视图垂直和水平居中
/* 更新视图框架,将其相对于父视图水平居中
/* 更新视图框架,将其相对于父视图垂直居中
/* 将视图框架更改为填充父视图框架: */
/* 将视图框架更改为填充父视图宽度: */
/* 将视图框架更改为填充父视图高度: */
###GON_UIView+Frame
/* 更新视图框架原点
/* 更新视图框架大小
/* 更新视图框架X原点
/* 更新视图框架Y原点
/* 更新视图中心X
/* 更新视图中心Y
/* 更新视图框架宽度
/* 更新视图框架高度
/* 将incX添加到视图框架X原点
/* 将incY添加到视图框架Y原点
/* 将incWidth添加到视图框架宽度
/* 将incHeight添加到视图框架高度
###GON_UIView+Utils
/* 从视图创建一个图像
###GON_UIViewController+Utils
/* 带有动画关闭当前模态视图控制器。等同于 dismissViewControllerAnimated:YES completion:nil */
/* 带有动画关闭当前模态视图控制器。等同于 dismissViewControllerAnimated:NO completion:nil */
###GON_UIScrollView+Fitting
/* 通过添加内边距垂直居中内容
/* 通过添加填充来实现水平居中内容
/* 通过添加填充来实现居中内容 */
###GON_UITextView+Fitting
// 目前为空
###GON_UITextView+AttributedFitting
/* 更新textview文本并允许其框架适应,以便在多行上显示所有文本,同时保持当前宽度。
/* 更新textview文本并允许其框架适应,以便在单行上显示所有文本。
/* 更新textview文本并允许其框架适应,以便在给定高度内显示尽可能多的文本。
/* 更新textview文本并允许其框架适应,以在给定宽度内显示尽可能多的文本。
/* 更新textview文本并允许其框架适应,以便在给定高度内显示尽可能多的文本。
/* 更新textview文本并允许其框架适应,以在给定宽度内显示尽可能多的文本。
##StoreKit
###GON_SKProduct+Utils
/* 返回用于向用户显示的本地化价格 */
##Versions
0.5 : Initial release<br/>