从 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
希望对您有所帮助
我正在尝试将 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
希望对您有所帮助