@MKinzler
Ja das hatte ich schon gesehen, scheint aber dasgleiche zu machen als das von Hand.
Schien mir komlizierter als es direkt zu versuchen.
Bin auch wieder ein stückchen weiter:
Ich hatte den Namen des Interfaces umbenannt, das macht sinn das es 1:1 gleich ist wie in der Library.
Jetzt bekomme ich jedenfalls einen ordentlichen Linioer error 00000001, aber warum weiis ich nicht.
So siehts in der Library aus, mit dem Header:
Code:
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
@interface TestFairy: NSObject
/**
* Initialize a TestFairy session.
*
* @param appToken Your key as given to you in your TestFairy account
*/
+ (void)begin:(NSString *)appToken;
Das ist das Interface dazu, jetzt mit gleichen Namen.
Habe auch versucht die GUUID wegzulassen, so wie in Daniels Beispiel, ist aber immer noch mit Error.
Delphi-Quellcode:
type
{ S4TfLibrary / TS4TfLibrary }
// non-static (instance) methods of "TfLibrary"
TestFairy = interface(NSObject)
// ['{5875CABD-AEBA-4A91-A03F-C3DA9BFE24AD}']
// Interface relates to name and signature in Library
procedure &begin( appToken : NSString ); cdecl;
end;
// static (class) methods of "MyLibrary"
TestFairyClass = interface(NSObjectClass)
end;
TTestFairy = class(TOCGenericImport<TestFairyClass, TestFairy>)
end;
Gelinkt wird ann mit dieser Zeile, sollte ebenfalls Daniels Beispiel entsprechen:
Delphi-Quellcode:
{$IF DEFINED(CPUARM)}
function FAKE_LOADER : TTestFairy; cdecl; external LIB_TF_LIBRARY name 'OBJC_CLASS_$_TestFairy';
{$ENDIF}
initialization
{$IF DEFINED(CPUARM)}
/// although this code is NEVER executed, it ensures a strong reference
/// to the library - the linker is gonna LOVE (and consume) it!
if FALSE then
FAKE_LOADER;
{$ENDIF}
Die Library liegt im gleichen Verzeichnis wie die Sourcen, so definiert:
Delphi-Quellcode:
const
LIB_TF_LIBRARY = 'libTestFairy.a';
Was kann denn jetzt noch schieflaufen ?
Ich versuche mal ein bischen die Verzeichnisse aus.
Rollo