mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-16 09:39:27 +02:00

also return regular objcclass methods before, because these are also registered under class helper procsyms for future id.anymethod support * give an error when calling an inherited method from an objccategory method, if that is not declared in the parent of the extended class (since calling inherited in an objccategory method is the same as calling inherited in a method of the extended class; if a method is replaced, calling inherited will *not* call the original method from the original class) git-svn-id: trunk@14213 -
46 lines
827 B
ObjectPascal
46 lines
827 B
ObjectPascal
{ %target=darwin }
|
|
{ %cpu=powerpc,powerpc64,i386,x86_64,arm }
|
|
|
|
{$mode objfpc}
|
|
{$modeswitch objectivec1}
|
|
|
|
type
|
|
ta = objcclass(NSObject)
|
|
function tabaseproc(cp: longint): double; message 'tabaseproc:';
|
|
end;
|
|
|
|
ca = objccategory(ta)
|
|
function tabaseproc(cp: longint): double; reintroduce;
|
|
end;
|
|
|
|
nsobjectta = objccategory(NSObject)
|
|
function tabaseproc(cp: longint): double; message 'tabaseproc:';
|
|
end;
|
|
|
|
function ta.tabaseproc(cp: longint): double;
|
|
begin
|
|
result:=cp;
|
|
halt(1);
|
|
end;
|
|
|
|
function ca.tabaseproc(cp: longint): double;
|
|
begin
|
|
result:=inherited tabaseproc(cp+1);
|
|
end;
|
|
|
|
function nsobjectta.tabaseproc(cp: longint): double;
|
|
begin
|
|
if (cp<>4321) then
|
|
halt(1);
|
|
result:=123.625;
|
|
end;
|
|
|
|
var
|
|
a: ta;
|
|
begin
|
|
a:=ta(ta.alloc).init;
|
|
if a.tabaseproc(4320)<>123.625 then
|
|
halt(2);
|
|
a.release;
|
|
end.
|