我开始在视图控制器上编写Swift扩展。所以我现在有三个文件:
我的头文件,ViewController.h
@interface MyViewController : UIViewController
@end我的Obj实现文件,ViewController.m
@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
extension MyViewController {
    func customiseScrollView() {
    }
}我的问题是,是否可以从我的Swift实现文件访问我的Obj属性?每次我提到它,我都会发现一个错误:
Value of type 'MyViewController' has no member 'scrollView'奖金1:还能有人澄清Swift组件是否也能看到.m是什么委托。(澄清一下,在Swift中执行scrollView.delegate = self是一个编译错误,因为Swift文件没有意识到.m文件是一个UIScrollViewDelegate)。
红利2: Swift扩展文件可以调用从.m对应方声明的Obj方法吗?
发布于 2015-10-22 07:51:50
只需创建一个桥接头文件,然后在其中导入ObjC文件,如下所示:
#import <objectivec.h>稍后在你的快速档案中:
var a = objectivec()
a.method_from_those_file欲了解更多信息,请参阅这里中的Apple。
https://stackoverflow.com/questions/33275758
复制相似问题