Frage

Ich habe gehofft, jemand könnte mir helfen, die Syntax von Blöcken zu verstehen, wenn sie als Mitglieder einer Klasse verwendet. Ich habe einige Code, tatsächlich arbeiten gerade fein ist:

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

@interface StructureListDelegate : NRFCTableDelegate
{
    StructureDeleteCallback _structureDeleteCallback;
}

@property (nonatomic, copy) StructureDeleteCallback structureDeleteCallback;

@end

Dies funktioniert, aber ich möchte die Syntax der typedef Aussage verstehen; und ob oder nicht ist es tatsächlich erforderlich ist, um den Einsatz typedef.

Was ich habe, sagt gelesen, dass in dieser Situation mit typedef wird empfohlen, da es den Code viel klarer macht; aber ich habe es nicht gelungen, es zu bekommen, überhaupt zu kompilieren, wenn sie versuchen, dies zu tun, ohne typedef. Mein Verständnis von typedef war, dass die Syntax war im Grunde:

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

Wie zum Beispiel:

typedef double CLLocationDegrees;

Aber die Syntax meiner typedef Aussage bedeutet dies nicht überein. Also meine Fragen sind:

  • Wie kann die Syntax meiner typedef Aussage sein, so unterscheidet sich von anderen typedef Aussagen / Was bedeutet die Syntax ich meine bin mit tatsächlich an den Compiler?
  • Ist es möglich, hat einen Block als Mitglied einer Klasse ohne typedef?
War es hilfreich?

Lösung

Ich selbst habe eine Frage nach dem Vorbild von Ihnen hier gefragt: Blockreferenzen wie zB vars in Objective-C

Sehen Sie meine Antworten hier und hier .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top