Einzelnen Beitrag anzeigen

romber

Registriert seit: 15. Apr 2004
Ort: Köln
1.164 Beiträge
 
Delphi 10 Seattle Professional
 
#1

UIImpact​Feedback​Generator: fehlende Klasse deklarieren und nutzen?

  Alt 28. Mär 2017, 11:36
Hallo!

Ich versuche gerade, eine bisher nicht eingebundene ObjectiveC-Klasse in meinem Projekt zu deklarieren und mache dabei etwas falsch. Es handelt sich um den seit iOS 10 verfügbaren UIFeedback​Generator , der unterschiedliche Haptic-Feedbacks ermöglicht, z.B. kurze Vibration, wenn ein GUI-Objekt betätigt. Von dieser Klasse werden drei weitere Klassen für unterschiedliche Situationen abgeleitet. Eins dieser Klassen, nähmlich UIImpact​Feedback​Generator versuche ich nun in mein Projekt einzubinden.

Delphi-Quellcode:
...
const
  UIImpactFeedbackStyleLight = 0;
  {$EXTERNALSYM UIImpactFeedbackStyleLight}
  UIImpactFeedbackStyleMedium = 1;
  {$EXTERNALSYM UIImpactFeedbackStyleMedium}
  UIImpactFeedbackStyleHeavy = 2;
  {$EXTERNALSYM UIImpactFeedbackStyleHeavy}

type
  UIImpactFeedbackStyle = NSInteger;

  UIFeedbackGeneratorClass = interface(NSObjectClass)
  ['{6B7EC779-C032-4F7A-B51B-BAF0E4249CE6}']
  end;

  UIFeedbackGenerator = interface(NSObject)
    ['{5EFF0FE8-F7F1-4443-90B0-94B69C6F9F01}']
    procedure prepare; cdecl;
  end;
  TUIFeedbackGenerator = class(TOCGenericImport<UIFeedbackGeneratorClass, UIFeedbackGenerator>) end;

  UIImpactFeedbackGeneratorClass = interface(NSObjectClass)
  ['{4AD834AB-9CC2-43F2-891B-F0BDD4F03732}']
  end;

  UIImpactFeedbackGenerator = interface(UIFeedbackGenerator)
  ['{8BFE603E-FFBC-4109-9AAE-62F77ED4CD57}']
  function initWithStyle(style: UIImpactFeedbackStyle): Pointer;
  procedure impactOccurred; cdecl;
  end;
  TUIImpactFeedbackGenerator = class(TOCGenericImport<UIImpactFeedbackGeneratorClass, UIImpactFeedbackGenerator>) end;
...

implementation

...

procedure TapDetailsEvents.showClick(Sender: TObject);
var
  vibrationFeedback: UIImpactFeedbackGenerator;
begin
  vibrationFeedback := TUIImpactFeedbackGenerator.Wrap(TUIImpactFeedbackGenerator.OCClass.alloc); //<---Bereits an dieser Zeile stürzt die App ab
  vibrationFeedback.initWithStyle(UIImpactFeedbackStyleLight);
  vibrationFeedback.impactOccurred;
...
end;
Die App stürzt ab. Was mache ich falsch?
Danke!
  Mit Zitat antworten Zitat