- 用宏定义检测block是否可用!
#define BLOCK_EXEC(block, ...) if (block) { block(__VA_ARGS__); };
// 宏定义之前的用法
/*
if (completionBlock)
{
completionBlock(arg1, arg2);
}
*/
// 宏定义之后的用法
BLOCK_EXEC(completionBlock, arg1, arg2);
- 给SDK头文件加权限
如果您是从DMG安装Xcode的,看看这个技术通过Joar Wingfors,以避免通过保留所有权,权限和硬链接意外修改SDK头:
$ sudo ditto /Volumes/Xcode/Xcode.app /Applications/Xcode.app
- 使用ARC和不使用ARC
//使用ARC和不使用ARC
#if __has_feature(objc_arc)
//compiling with ARC
#else
// compiling without ARC
#endif
- 读取本地图片
#define LOADIMAGE(file,ext)
[UIImage imageWithContentsOfFile:
[NSBundle mainBundle]pathForResource:file
ofType:ext]
//定义UIImage对象
#define IMAGE(A) [UIImage imageWithContentsOfFile:[NSBundle mainBundle] pathForResource:A ofType:nil]
- iOS图片内存优化(博文)内存优化经验
解决步骤:instrument调试后,发现没被释放的全是imageIO,差不多就知道了,把读图的方式,从[UIImage imageNamed:@”“],改成imageWithContentsOfFile,就可以了。
http://cc.cocimg.com/api/uploads/20151231/1451545606845232.png
问题原因:imageNamed读取图片的方法,会缓存在内存中,所以较大的图片,还是用imageWithContentsOfFile。?
Tip1:.xcassets里的图片无法用imageWithContentsOfFile读取;?
Tip2:imageWithContentsOfFile读取图片需要加文件后缀名如png,jpg等;