2013-08-23 49 views
0

我有一個小問題,這裏涉及塊和宏,我想是有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(方法,塊),並得到它的工作,但它使我的代碼看起來很醜陋。

+0

你'block'屬性大概服用塊的副本時,它的設置。這將解釋兩個不同的指針。執行的代碼仍然是相同的。總的來說,雖然我真的不明白你在做什麼,或者你爲什麼要用宏做這件事。你能詳細說明嗎? –

+0

我試圖讓我需要保留到數組中的所有塊,並且我需要引用該塊使用弱引用。這樣,當我需要刪除自己的時候,我刪除了數組,它殺死了所有塊指針,並允許自我釋放。這是爲了避免一個區塊內部需要的自身強弱步驟,以避免循環保留 – Knight0fDragon

+0

「截至目前,a和b是2個不同的區塊」不,它不是。 – newacct

回答

0

爲什麼你不會像self.block = MACRO_NAME(method)那樣做?

然後,

MACRO_NAME(method) Block method =^
+0

我想讓self.block成爲宏的一部分,它的幕後功能 – Knight0fDragon

0

原來。我不得不添加第三塊指針得到這個工作正常,誰知道,不管它的作品,感謝您的幫助

相關問題