Ответ 1
Если вы нажмете команду "ProductModuleName-Swift.h"
на Xcode
редактор исходного файла, вы можете увидеть, как методы Swift сопоставляются с Objective-C.
В вашем случае это будет
@interface MySwiftClass : NSObject
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
- (void)sayHello;
- (NSInteger)addXWithX:(NSInteger)x andY:(NSInteger)y;
@end
который называется
MySwiftClass* getData = [[MySwiftClass alloc]init];
[getData sayHello];
NSInteger result = [getData addXWithX:5 andY:5];
Лучшее имя метода Swift 3 может быть
func add(x: Int, y:Int) -> Int
потому что x
уже является аргументом (внешним) именем первого
параметр. Вы также можете добавить атрибут @objc()
в определение Swift
для управления именем Objective-C. Например, при
@objc(addX:andY:)
func add(x: Int, y: Int) -> Int {
return x+y
}
он будет вызываться из Objective-C как
NSInteger result = [getData addX:5 andY:5];