Einzelnen Beitrag anzeigen

Rollo62

Registriert seit: 15. Mär 2007
3.908 Beiträge
 
Delphi 12 Athens
 
#13

AW: Hat Jemand schonmal mit TestFairy herumgespielt ?

  Alt 13. Mai 2016, 12:42
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

Geändert von Rollo62 (13. Mai 2016 um 12:48 Uhr)
  Mit Zitat antworten Zitat