Hier ist ein detaillierteres Beispiel.
@interface ClassObjC2 : NSObject
-(id)init;
-(void)invokeCB;
@property (nonatomic, copy) void(^scrolledCallBlock)(int);
@end
In der Objective-C-Implementierung:
@implementation ClassObjC2
-(id)init { return self; }
-(void)invokeCB { self.scrolledCallBlock(1234); }
@end
in Swift:
var c2 : ClassObjC2 = ClassObjC2()
func callback(i : Int32) ->Void
{
print("Callback is called with int: \(i)")
}
c2.scrolledCallBlock = callback; // Commenting this line out will cause "Callback is nil" to be printed.
if c2.scrolledCallBlock != nil
{
c2.invokeCB()
}
else { print("Callback is nil!!!") }
Die in den Objective-C-Header, die Swift über das Brückenkopf verfügbar sein muß Ausgabe:
Callback is called with int: 1234