我將在序言中提出這個問題,指出我要問的只是教育和可能的調試目的。如何創建NSBlock對象?
如何在Objective C運行時內部創建塊對象?
我看到所有表示各種塊類型的類的層次結構,並且層次結構中最低的超類,NSObject
,是NSBlock
。對班級數據的轉儲顯示它實施了+ alloc
,+ allocWithZone:
,+ copy
和+ copyWithZone:
方法。其他塊子類都沒有實現這些類方法,這導致我相信,可能錯誤地認爲NSBlock
負責塊處理。
但是這些方法似乎在塊的使用期限內的任何時候都不會被調用。我用自己的方式交換了實現,並在每個實現中都放置了一個斷點,但他們從來沒有被調用。使用NSObject
的實現方式進行類似的練習使我確切地知道我想要什麼。
所以我假設塊以不同的方式實現?任何人都可以闡明這個實現是如何工作的?即使我不能掛鉤塊的分配和複製,我想了解內部實現。
我不認爲這是可能使用'[ NSBlock alloc]'創建一個塊,這就是爲什麼他們不被調用。 –