4
如何在Delphi/Firemonkey(XE5或XE6)中聲明一個簡單的ObjC-Class? 我想用這個類中的一些委託方法創建一個動畫委託類。Delphi + iOS:如何聲明簡單的ObjC-Class?
謝謝!
如何在Delphi/Firemonkey(XE5或XE6)中聲明一個簡單的ObjC-Class? 我想用這個類中的一些委託方法創建一個動畫委託類。Delphi + iOS:如何聲明簡單的ObjC-Class?
謝謝!
用你的方法創建一個接口並從IObjectiveC派生。也創建一個GUID。我沒有在這裏發佈,所以沒有人試圖使用我的。
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派生。它應該實現你的委託接口。
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;