Ios 目标C与Swift
我对Objective-C类有问题。我通常与Swift合作,但在我的工作中,我从事的是Objective-C项目。我想在单个项目中结合Swift类和Objective-C代码库 在Swift中,我以这种方式创建了一个类:Ios 目标C与Swift,ios,objective-c,swift,Ios,Objective C,Swift,我对Objective-C类有问题。我通常与Swift合作,但在我的工作中,我从事的是Objective-C项目。我想在单个项目中结合Swift类和Objective-C代码库 在Swift中,我以这种方式创建了一个类: @objc class MyView: UIView { init(frame: CGRect, title: String, color: UIColor) { super.init(frame: frame) ... } }
@objc class MyView: UIView {
init(frame: CGRect, title: String, color: UIColor) {
super.init(frame: frame)
...
}
}
我称之为:
view = MyView(frame:frame, title:@"title",color:redColor)
但在Objective-C中,我可以用以下方式来称呼它:
MyView *view = [[MyView alloc] initWithFrame:(CGRect)];
我无法设置标题
和颜色
参数。
如何设置参数?您是否在.m
文件中导入了模块名Swift.h“
(其中模块名应替换为模块名)?如果你不这样做,它将无法从Objective-C中找到快速方法
当我这样做时,MyView
的自定义init
方法现在可以通过Objective-C访问:
MyView *myView = [[MyView alloc] initWithFrame:frame title:@"title" color:[UIColor lightGrayColor]];
请参阅。该objective-C语句无效。您缺少了使您的类甚至可以访问objective-c的@objc
。那么你到底在问什么呢?我的代码中有这个,但是在[[MyView alloc]initWithFrame:(CGRect)]中的(CGRect)
是什么代码>?发布您的实际代码。lu2302告诉您代码有什么问题,但却被告知这实际上不是您的代码。令人沮丧+令人不快。默认情况下,参数为帧