ビュー コントローラーで Swift 拡張機能を書き始めました。したがって、現在3つのファイルがあります。
私のヘッダーファイルViewController.h
:
@interface MyViewController : UIViewController
@end
私の Obj-C 実装ファイル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-C プロパティにアクセスすることは可能ですか? それを参照するたびに、エラーが発生しました:
Value of type 'MyViewController' has no member 'scrollView'
ボーナス 1: Swift コンポーネントが .m のデリゲートも認識できるかどうかを誰かが明確にすることもできます。(明確にするscrollView.delegate = self
ために、Swift ファイルは .m ファイルが UIScrollViewDelegate であることを認識しないため、Swift で実行するとコンパイル エラーになります)。
ボーナス 2: Swift 拡張ファイルは、対応する .m から宣言された Obj-C メソッドを呼び出すことができますか?