Straybird’s Blog

A blog for life and study

读书笔记(2) iOS与OSX多线程和内存管理

续上文,这一篇主要记录block中的一些点。block中最需要理解的就2个概念:匿名函数,局部变量,表面看起来很简单,但实际上深究起来,里面的涵义大有可以挖掘的地方。

访问局部变量

在block中可以使用局部变量,如下所示:

int i = 1;
^{
    NSLog(@"i is %d",i);
}();

第一反应也许你会觉得这有什么了不起的?block定义在i之后,可以访问不是很正常么?想想函数,再想想block这种匿名函数,就会明白这的确是有些不一样的。

读书笔记(1) iOS与OSX多线程和内存管理

最近这些天看了<iOS与OSX多线程和内存管理>这边书,觉得这本书还是写得很不错的,这一篇对内存管理中的一些点记一些笔记,主要集中在ARC上,关于block的以后再谈。我这里也不准备从最基本的概念入手,因为介绍ARC的文章已经太多了,所以我只记录一些我觉得比较特殊的点。

查看自动释放池的状态

只需要先使用声明:

extern void _objc_autoreleasePoolPrint();

就可以使用

_objc_autoreleasePoolPrint();

打印释放池里的状态了。这个API是私有API,对于osx和iOS通用,还有一个API只对iOS可以使用,这里就不提了,个人觉得上面这个API就够用了。

Markdown语法个人总结

最近开始写博客了,用的是Markdown写然后生成静态网页,最开始的时候只匆匆过了一遍Markdown语法,然后写的时候也懒得去看,觉得很多时候还不如直接使用html方便,但这样导致的问题就是文章的存根不太漂亮,然后我对html的很多标签并不太熟悉,所以写的时候Markdown和html标签混合使用,会遇到一些问题,然后查询所花费的时间也不少。考虑既然想把写博客这件事情继续下去,那还是应该先花些时间在基础建设上。今天将Markdown语法好好地看了一下,下面总结一下,主要记录一下我在写博文中最常用到的一些。

柴静-看见

今天在网易公开课上看了柴静新书发布的一个视频,看完之后蛮有感触的,我不懂新闻学,也不懂传播,但是我仍然能从这位知性女性温柔而又坚定中的阐述中获得力量。

Objective-C单例模式之ARC+GCD实现

单例模式是什么,这里姑且不谈,只谈谈ARC+GCD实现下单例模式比较特殊和受争议的点。

首先看一个ARC+GCD实现:

@interface Singleton : NSObject
+ (Singleton *)sharedInstance;     
@end     

@implementation Singleton     
static  Singleton *sharedInstance = nil ;             
+ (Singleton *) sharedInstance           
{      
    static dispatch_once_t onceToken;  // 锁      
    dispatch_once (& onceToken, ^ {     // 最多调用一次        
    sharedInstance = [[self alloc] init];         
    });      
    return  sharedInstance;            
}        
@end