Block是C級別的語法和運行時特性。Block比較類似C函數,但是Block比之C函數,其靈活性體現在棧內存、堆內存的引用,我們甚至可以將一個Block作為參數傳給其他的函數或者Block。
先看一個比較簡單的Block例子:
在這個例子中,myBlock是一個Block變量,它接受一個int類型的參數,返回一個int類型的值。是不是很像C函數?
來,讓我們typedef一下
注意:上面的typedef都還有效~
主動調用一下:
作為參數返回:
類的一個成員:
其他函數的參數:
甚至其他block的參數:
啊,全局變量!:
好了,你知道block大概能怎么用了。
如果要在block內修改block外聲明的棧變量,那么一定要對該變量加__block標記:
新聞熱點
疑難解答