Objective-C 桥接标头对 Swift 文件不起作用



我正在尝试将我的项目迁移到 Swift,并从制作一个 Objective-C Bridger 文件开始,其中包含相关 .h 文件的 #imports。我已经详尽地检查了构建设置选项和路径是否正确。我为UITableViewController创建了一个Swift文件,如下所示:

表视图控制器.swift

class TableViewController {
    var title: String = ""
    var summary: String = ""
    override init(style: UITableViewStyle) {
        super.init(style: style)
    }
    override func viewDidLoad() {
        super.viewDidLoad()
        title = UIResources.getString(settingsKey, withSuffix: "title")
        summary = UIResources.getString(settingKey, withSuffix: "summary")
    } 
    ...
}

但是,从第一个覆盖开始的每一行都会导致错误,例如

初始值设定项

不会从其超类重写指定的初始值设定项

不能在根类中引用"超级"成员

我对使用Objective-C很不熟悉,所以我不确定我需要改变什么,如果有的话。这也是我在桥接标头中导入的类的 .h 文件。我真的被这个难住了。

TableViewController.h

#import <UIKit/UIKit.h>
@class TableViewController
@protocol TableViewControllerDelegate <NSObject>
- (void) tableViewControllerDidSave: (UIViewController *)controller forKey:(NSString *)key withNewValue:(id) value;
@end
@interface TableViewController : UITableViewController
@property (strong, nonatomic) id <TableViewControllerDelegate> delegate;
@property (strong, nonatomic) NSString *settingKey;
@property (strong, nonatomic) id stringValue;
@end

我没有意识到我需要将类型添加到类定义中

class TableViewController : UITableViewController, TableViewControllerDelegate {

这就是你盲目信任 objectivec2swift.com :P

我还将 .h 文件中概述的变量和协议添加到 Swift 文件中。

相关内容

  • 没有找到相关文章

最新更新