首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Swift扩展文件中访问Obj-C属性

在Swift扩展文件中访问Obj-C属性
EN

Stack Overflow用户
提问于 2015-10-22 07:45:17
回答 5查看 9K关注 0票数 21

我开始在视图控制器上编写Swift扩展。所以我现在有三个文件:

我的头文件,ViewController.h

代码语言:javascript
运行
复制
@interface MyViewController : UIViewController

@end

我的Obj实现文件,ViewController.m

代码语言:javascript
运行
复制
@interface MyViewController () <UIScrollViewDelegate>
@property (strong, nonatomic) UIScrollView *scrollView;
@end

@implementation MyViewController

- (void)viewDidLoad {

    [super viewDidLoad];

    self.scrollView = [[UIScrollView alloc] init];
    [self customiseScrollView]; //This is Swift method called from Obj-C file
}

@end

最后,ViewController.swift

代码语言:javascript
运行
复制
extension MyViewController {

    func customiseScrollView() {

    }
}

我的问题是,是否可以从我的Swift实现文件访问我的Obj属性?每次我提到它,我都会发现一个错误:

代码语言:javascript
运行
复制
Value of type 'MyViewController' has no member 'scrollView'

奖金1:还能有人澄清Swift组件是否也能看到.m是什么委托。(澄清一下,在Swift中执行scrollView.delegate = self是一个编译错误,因为Swift文件没有意识到.m文件是一个UIScrollViewDelegate)。

红利2: Swift扩展文件可以调用从.m对应方声明的Obj方法吗?

EN

Stack Overflow用户

发布于 2015-10-22 07:51:50

只需创建一个桥接头文件,然后在其中导入ObjC文件,如下所示:

代码语言:javascript
运行
复制
#import <objectivec.h>

稍后在你的快速档案中:

代码语言:javascript
运行
复制
var a = objectivec()
a.method_from_those_file

欲了解更多信息,请参阅这里中的Apple。

票数 -1
EN
查看全部 5 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33275758

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档