我有一個小問題,這裏涉及塊和宏,我想是有2點的指針指向正在創建相同的塊。多個指針指向同一塊
這裏有一個例子
Block a; //Block is a typedef
Block b;
a=b=^{int craziness=0};
截至目前,A和B是2個不同的塊,我想他們是相同的塊,使我的宏更容易
我的宏將MACRO_NAME(method) Block method = self.block =^
Self.block有一個列表管理塊的方式,所以我需要的代碼遵循我有它,因爲之後的宏將按照我的代碼的方式,所以我想要的結果看起來像這樣
個(void) somemethod
{
MACRO_NAME(newBlock)
{
Int crazyness = 0;
};
}
任何想法,將不勝感激
編輯:作爲一個方面說明,我知道我可以使用MACRO_NAME(方法,塊),並得到它的工作,但它使我的代碼看起來很醜陋。
你'block'屬性大概服用塊的副本時,它的設置。這將解釋兩個不同的指針。執行的代碼仍然是相同的。總的來說,雖然我真的不明白你在做什麼,或者你爲什麼要用宏做這件事。你能詳細說明嗎? –
我試圖讓我需要保留到數組中的所有塊,並且我需要引用該塊使用弱引用。這樣,當我需要刪除自己的時候,我刪除了數組,它殺死了所有塊指針,並允許自我釋放。這是爲了避免一個區塊內部需要的自身強弱步驟,以避免循環保留 – Knight0fDragon
「截至目前,a和b是2個不同的區塊」不,它不是。 – newacct