2011-01-25 17 views
8

w jednym pliku nagłówka mam coś takiego:zadeklarować odniesienie do przodu do bloku typedef?

typedef void (^MyBlock)(void); 

muszę korzystać z tego samego dokładne odniesienie w innym pliku nagłówka.

Oczywiście, mogę #import jeden plik nagłówkowy na inny, lub dołączyć typedef do globalnego wstępnie skompilowanego nagłówka, ale zamiast tego istnieje sposób przekazania odwołania do bloku typedef?

+0

W ten sam sposób można przekazać deklarację klas i protokołów za pomocą '@class MyClass;' i '@protocol MyProtocol; 'tak? – Rivera

+0

@Rivera Myślę, że tak –

Odpowiedz

9

O ile wiem, po prostu umieściłbym go we wspólnym nagłówku i umieścił go tam, gdzie jest potrzebny.

+0

To właśnie zrobiłem: utworzyłem plik nagłówkowy, który ma tylko typedef i po prostu # importuje ten nagłówek do innych plików nagłówkowych. Dzięki! –

+0

Posiadanie nagłówka tylko dla bloku wydaje się dziwne. Nie ma nic więcej, że blok jest bardziej "dołączony" do tego, do którego należy nagłówek? –

+0

Jest używany przez kilka różnych klas: dwie z nich nie znają się nawzajem, a jeden rodzic używa tych dwóch. Dodatkowo, jeśli myślisz o tym jako typ, sensowne jest zdefiniowanie go we własnym nagłówku. Ponieważ importuję ten nagłówek (ten z typedef) do innych plików nagłówkowych, to miło, że zakres nagłówka typedef jest tak mały. –