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
UIFeedbackGenerator
, 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
UIImpactFeedbackGenerator
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!