Jak przeprowadzić konwersję? (Klasa C celu -> Delphi XE4)XE4 (Firemonkey + iOS Static Library), konwersja Pascala z klasy Objective C?
oraz jak używać klasy Objective-C w bibliotece statycznej Delphi XE?
Oto moja pierwsza próba. Ale powoduje błąd.
Objective C Źródło
// objective C : test.h ----------------------------------------
@interface objc_test : NSObject {
BOOL busy;
}
- (int) test :(int) value;
@end
// objective C : test.m ----------------------------------------
@implementation objc_test
- (int) test :(int) value {
busy = true;
return(value + 1);
}
@end
Oto źle mój kod konwersji. Jak to naprawić?
Delphi Źródło
// Delphi XE4/iOS -------------------------------------------
{$L test.a} // ObjC Static Library
type
objc_test = interface (NSObject)
function test(value : integer) : integer; cdecl;
end;
Tobjc_test = class(TOCLocal)
Public
function GetObjectiveCClass : PTypeInfo; override;
function test(value : integer): integer; cdecl;
end;
implmentation
function Tobjc_test.GetObjectiveCClass : PTypeInfo;
begin
Result := TypeInfo(objc_test);
end;
function Tobjc_test.test(value : integer): integer;
begin
// ????????
//
end;
Dzięki
Simon, Choi
pojawiasz się do realizacji funkcji zarówno w obj-C i Pascal. Nie chcesz zaimplementować w obj-c i zużyć w paśmie? –
Co więcej, jestem pewien, że kompilator robi więcej niż "popełnia błąd". Kompilator dokłada starań, aby opisać błąd. Dlaczego nie możesz wysilić się, by powiedzieć nam, co mówi? –