Das Problem scheint Folgendes:
ENTWEDER ich benenne das Interface NICHT wie in der libTestFairy.a Library:
Delphi-Quellcode:
type
{ S4TfLibrary / TS4TfLibrary }
ITestFairy = interface(NSObject)
// Interface relates to name and signature in Library
procedure &begin( appToken : NSString ); cdecl;
end;
{$IF DEFINED(CPUARM)}
function FAKE_LOADER : TTestFairy; cdecl; external LIB_TF_LIBRARY name 'OBJC_CLASS_$_ITestFairy';
{$ENDIF}
Dann kann ich Kompilieren und Linken, aber beim Aufruf finder er "TestFairy" aus der Library natürlich nicht.
ODER ich benenne das Interface GENAU wie in der libTestFairy.a Library:
Delphi-Quellcode:
type
{ S4TfLibrary / TS4TfLibrary }
TestFairy = interface(NSObject)
// Interface relates to name and signature in Library
procedure &begin( appToken : NSString ); cdecl;
end;
{$IF DEFINED(CPUARM)}
function FAKE_LOADER : TTestFairy; cdecl; external LIB_TF_LIBRARY name 'OBJC_CLASS_$_TestFairy';
{$ENDIF}
Dann bekomme ich einen Linker error ...
Gibt es nochen einen Dritten Weg ?
UPDATE:
Lasse ich die Methode weg, dann kompiliert es: Juhuuuu
Aber wie komme ich das dann wieder in mein Interface rein ?
Die Signatur stimmt, nur heisst die Funktion im Orginal dummerweise "begin", könnte das Problem daher kommen ?
Code:
@interface TestFairy: NSObject
/**
* Initialize a TestFairy session.
*
* @param appToken Your key as given to you in your TestFairy account
*/
+ (void)begin:(NSString *)appToken;
Delphi-Quellcode:
// Interface relates to name and signature in Library
procedure &begin( appToken : NSString ); cdecl;
Rollo