Синтаксис объявления свойства, относящегося к блоку, следующий:
typedef void (^voidBlock)(); @property (nonatomic, copy) voidBlock callback; ... @synthesize callback;
Как это могло быть сделано без typedef?