oc 如何调用swift中的convenience构造方法,求解答
1条回答 默认 最新
- 你知我知皆知 2024-07-24 15:34关注
以下回答参考 皆我百晓生、券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。
在Objective-C中,你可以通过以下方式调用Swift中的构造函数:
[super init];
这将创建一个新的对象,并使用默认的初始化参数。如果你想要覆盖这些默认值,可以这样写:
[self setProperty1:100]; // 如果你需要设置属性 self.setProperty2(200); // 同样适用于其他属性
如果你想调用Swift中的构造函数(例如
init()
),你可能需要使用OC的@objc
注解来告诉编译器这个方法是Objective-C的。对于
convenience
方法,Objective-C并没有专门的方法来处理它。但是,你可以在你的Objective-C代码中使用Swift的特性,比如通过继承和封装。例如:@interface MyClass : NSObject <NSCoding> @property (nonatomic, assign) NSInteger property; - (instancetype)initWithProperty:(NSInteger)property; @end @implementation MyClass - (instancetype)initWithProperty:(NSInteger)property { self = [super init]; if (self) { _property = property; } return self; } @end
在这个例子中,我们定义了一个
MyClass
类,它有一个initWithProperty:
方法。然后我们在Objective-C代码中使用了@objc
注解,告诉编译器这个方法实际上是Objective-C的。解决 无用评论 打赏 举报
悬赏问题
- ¥15 单纯型python实现编译报错
- ¥15 c++2013读写oracle
- ¥15 c++ gmssl sm2验签demo
- ¥15 关于模的完全剩余系(关键词-数学方法)
- ¥15 有没有人懂这个博图程序怎么写,还要跟SFB连接,真的不会,求帮助
- ¥15 PVE8.2.7无法成功使用a5000的vGPU,什么原因
- ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
- ¥15 安装quartus II18.1时弹出此error,怎么解决?
- ¥15 keil官网下载psn序列号在哪
- ¥15 想用adb命令做一个通话软件,播放录音