Delphi + iOS:如何声明简单的ObjC-Class? [英] Delphi + iOS: How to declare simple ObjC-Class?
本文介绍了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屋!
查看全文