block:本質(zhì)就是一個object-c對象
block:存儲位置,可能分為3個地方:代碼去壮韭,堆區(qū)北发、棧區(qū)(ARC情況下會自動拷貝到堆區(qū),因此ARC下只能有兩個地方:代碼去喷屋、堆區(qū))
代碼區(qū):
不訪問棧區(qū)的變量(如局部變量)琳拨,且不訪問堆區(qū)的變量(alloc創(chuàng)建的對象),此時block存放在代碼去屯曹。
堆區(qū):
訪問了處于棧區(qū)的變量狱庇,或者堆區(qū)的變量,此時block存放在堆區(qū)恶耽。–需要注意實際是放在棧區(qū)密任,在ARC情況下會自動拷貝到堆區(qū),如果不是ARC則存放在棧區(qū)偷俭,所在函數(shù)執(zhí)行完畢就會釋放浪讳,想再外面調(diào)用需要用copy指向它,這樣就拷貝到了堆區(qū)涌萤,strong屬性不會拷貝淹遵、會造成野指針錯區(qū)乳规。