从 Obj-c 到 swift 的 Segue 找不到 属性

Segue from Obj-c to swift can't find property

我正在尝试将 int 从 objective-c 文件传递​​到 swift。

我所采取的步骤确实是成功的,但遗憾的是,由于以下错误,它没有传递 int:Property 'productKey' not found on object of type 'ProductViewController *'

准备 Segue

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
  if ([segue.identifier isEqualToString:@"viewProduct"]) {
    ProductViewController *destVC = segue.destinationViewController;
    destVC.productKey = brandID;
  }
}

执行 Segue

dispatch_async(dispatch_get_main_queue(), ^(){
   [self performSegueWithIdentifier:@"viewProduct" sender:self];
});

Swift 文件

class ProductViewController: UIViewController {

    var productKey: Int!

    override func viewDidLoad() {
        super.viewDidLoad()
           print(productKey)
    }
}

头桥

 //
//  Use this file to import your target's public headers that you would like to expose to Swift.
//

#import "ARSceneViewController.h"

如果您在 objc 中使用 Swift 文件 类 桥接 header 在这里无济于事。

Xcode 将创建 Header 您需要导入的文件

首先转到构建设置并搜索 Defines Modules 并将其设置为 true。

现在在 .m 文件中添加以下 header 文件

#import "YourTargetName-Swift.h" 

并构建项目

并在 属性

之前添加 @objc

希望对您有所帮助