Delphi + iOS:如何声明简单的ObjC-Class? [英] Delphi + iOS: How to declare simple ObjC-Class?

查看:147
本文介绍了Delphi + iOS:如何声明简单的ObjC-Class?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何在Delphi / Firemonkey(XE5或XE6)中声明一个简单的ObjC-Class?
我想用这个类中的一些委托方法创建一个动画委托类。

How I can declare a simple ObjC-Class in Delphi/Firemonkey (XE5 or XE6)? I want to create an animation delegate class with some delegate methods inside of this class.

谢谢!

推荐答案

使用您的方法创建界面,来自IObjectiveC。也创建一个指导。我不会在这里发贴,所以没人会试用我的。

Create an interface with your methods and derive from IObjectiveC. Also create a guid. I'm not posting one here, so that nobody is tempted to use mine.

  ISampleDelegate = interface(IObjectiveC)
    ['{put-your-own-guid-here}'] // <-- Press Ctrl+Shift+G to create your own guid - must be unique for every interface
    procedure DispatchItem(Sender: Pointer); cdecl;
  end;

创建您的委托实现并从TOCLocal派生。它应该实现你的代理界面。

Create your delegate implementation and derive from TOCLocal. It should implement your delegate interface.

  TSampleDelegate = class(TOCLocal, ISampleDelegate)
  private
    FOwner: TMenuItem;
  public
    constructor Create(AOwner: TMenuItem);
    procedure DispatchItem(Sender: Pointer); cdecl;
  end;

constructor TSampleDelegate.Create(AOwner: TMenuItem);
begin
  inherited Create;
  FOwner := AOwner;
end;

创建委托:

FDelegate: ISampleDelegate;

FDelegate := TSampleDelegate.Create(Self);

分配您的代表:

Item.setDelegate(FDelegate);

免费代表:

Item.setDelegate(nil);
TNSObject.Wrap((FDelegate as ILocalObject).GetObjectID).release; // don't forget this one! The create constructor calls Alloc in inherited
FDelegate := nil;

这篇关于Delphi + iOS:如何声明简单的ObjC-Class?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆