好用分类提供给程序员很多便利,收集一些自己常用到的,会用到的分类;
使用数组时注意判断下标是否越界,插入对象前先判断该对象是否为空。
if (aObj) {
[array addObject:aObj];
}
可以使用 Cocoa 的 Category 特性直接扩展 NSMutable 类的 Add/Insert 方法。比如:
@interface NSMutableArray (SafeInsert)
-(void) safeAddObject:(id)anObject;
@end
@implementation NSMutableArray (SafeInsert)
-(void) safeAddObject:(id)anObject {
if (anObject) {
[self addObject:anObject];
}
}
@end
这样,以后在工程里面使用 NSMutableArray 就可以直接使用 safeAddObject 方法来规避 Crash。
@interface NSString (Suffix)
// 添加文件名后缀
- (NSString *)fileNameAppend:(NSString *)append;
@end
@implementation NSString (Suffix)
#pragma 添加文件后缀
- (NSString *)appendFileName:(NSString *)append;
{
NSString *fileName = [selfstringByDeletingPathExtension];
fileName = [fileName stringByAppendingString:append];
NSString *filePath = [self pathExtension];
if ([filePath length]) {
return [filePath stringByAppendingPathExtension:filePath];
}
return fileName;
}
@end
@interface UIImage (Frame)
// 返回全屏图片
+ (UIImage *)fullScreenImageWithName:(NSString *)name;
// 返回拉伸的图片
+ (UIImage *)stretchImageWithName:(NSString *)name;
@end
@implementation UIImage (Frame)
#pragma 拼接全屏图片字符串
+(UIImage *)fullScreenImageWithName:(NSString *)name
{
if (iPhone5) {
name = [name appendFileName:@"-568h@2x"];
}
return [UIImage imageNamed:name];
}
#pragma 拉伸图片
+(UIImage *)stretchImageWithName:(NSString *)name
{
UIImage *image = [UIImage imageNamed:name];
return [image stretchableImageWithLeftCapWidth:image.size.width *0.5topCapHeight:image.size.height *0.5];
}
@end