在我的iOS應用程序之間的循環依賴我想定義把對方作爲參數兩塊類型:的iOS塊定義
typedef void (^BlockA)(BlockB b);
typedef void (^BlockB)(BlockA a);
這種失敗,並在第一類型定義「未知類型名BlockB彙編(使感)。
我有一種變通方法,它定義這樣的類型:
typedef void (^BlockA)(id);
typedef void (^BlockB)(BlockA a);
我再投回到BLOCKa中定義裏面的BlockB類型,但在類型安全爲代價。
我也看過沒有使用typedefs,但是這會導致擴展塊定義的無限嵌套。
我知道如何解決具有前向聲明的結構的循環依賴關係,但我無法看到如何使用塊來完成此操作。
如果沒有解決方案的循環依賴,是否有一種方法,我可以限制參數BlockA爲任何塊類型,而不是通用的id
,這會給一定程度的類型安全。
AFAIK塊類型不能被轉發聲明。 – 2012-10-16 16:20:45