Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   iOS UIImpact​Feedback​Generator: fehlende Klasse deklarieren und nutzen? (https://www.delphipraxis.net/192200-uiimpact-feedback-generator-fehlende-klasse-deklarieren-und-nutzen.html)

romber 28. Mär 2017 11:36

UIImpact​Feedback​Generator: fehlende Klasse deklarieren und nutzen?
 
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
Delphi-Quellcode:
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
Delphi-Quellcode:
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!

romber 28. Mär 2017 12:06

AW: UIImpact​Feedback​Generator: fehlende Klasse deklarieren und nutzen?
 
Problem gelöst :oops::oops::oops::oops:

Peinlich:
Delphi-Quellcode:
cdecl;
vergessen.

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


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:06 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz