iOS 4 - Использование блоков в качестве члена класса

Я надеялся, что кто-то может помочь мне понять синтаксис блоков, используемых в качестве членов класса. У меня есть код, который действительно отлично работает:

@class Structure;
typedef void (^StructureDeleteCallback)(Structure *);

@interface StructureListDelegate : NRFCTableDelegate
{
    StructureDeleteCallback _structureDeleteCallback;
}

@property (nonatomic, copy) StructureDeleteCallback structureDeleteCallback;

@end

Это работает, но я бы хотел для понимания синтаксиса оператора typedef и того, действительно ли необходимо использовать typedef.

В том, что я прочитал, говорится, что использование typedef в этой ситуации рекомендуется, потому что это делает код намного понятнее, но я не смог заставить его скомпилировать вообще, когда пытался сделать это без typedef . Насколько я понимаю typedef, синтаксис был в основном:

typedef [actual type] [new name for type];

Такой как:

typedef double CLLocationDegrees;

Но синтаксис моего оператора typedef ему не соответствует. Поэтому мои вопросы:

  • Как может синтаксис моего typedef заявление быть таким отличным от других операторы typedef / что на самом деле означает используемый мной синтаксис для компилятора?
  • Возможно ли иметь блок как член класса без использования typedef ?
6
задан GendoIkari 16 September 2011 в 00:05
поделиться