|
@@ -0,0 +1,30 @@
|
|
|
+{ %target=darwin }
|
|
|
+{ %cpu=powerpc,powerpc64,i386,x86_64,arm,aarch64 }
|
|
|
+
|
|
|
+{$mode objfpc}{$H+}
|
|
|
+{$modeswitch objectivec1}
|
|
|
+
|
|
|
+uses
|
|
|
+ CocoaAll;
|
|
|
+
|
|
|
+procedure CheckProtocol;
|
|
|
+const
|
|
|
+ NSObjectProtocolName: UTF8String = 'NSObject';
|
|
|
+var
|
|
|
+ nso: id;
|
|
|
+ proto: pobjc_protocol;
|
|
|
+ cls: pobjc_class;
|
|
|
+begin
|
|
|
+ nso := NSObject.alloc.init;
|
|
|
+ cls := object_getClass(nso);
|
|
|
+ proto := objc_getProtocol(PAnsiChar(NSObjectProtocolName));
|
|
|
+ if class_conformsToProtocol(cls, proto) then
|
|
|
+ WriteLn('NSObject implements the NSObject protocol, as expected.')
|
|
|
+ else
|
|
|
+ halt(1);
|
|
|
+ nso.release;
|
|
|
+end;
|
|
|
+
|
|
|
+begin
|
|
|
+ CheckProtocol;
|
|
|
+end.
|