2017-06-09 105 views
0

我正試圖將我的項目遷移到Swift,並開始通過將#imports的Objective-C Bridger文件填充到相關的.h文件中。我詳盡地檢查了Build Settings選項和路徑是否正確。我創建了一個UITableViewController迅捷的文件看起來是這樣的:Objective-C橋接頭不適用於Swift文件

TableViewController.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 
+0

你應該看看'@interface TableViewController:UITableViewController',看看你可以在Swift類的TableViewController中做不同的操作。提示:你的班級應該是一個子班。 – Laffen

+0

對,我通過在類上添加委託代碼並將變量添加到TableVC類來計算出來。謝謝! –

+0

您能否發佈包含結果的問題更新(作爲未來讀者的答案)? – Laffen

回答

0

我沒有意識到我需要的類型添加到類定義

class TableViewController : UITableViewController, TableViewControllerDelegate { 

這就是你當你盲目的信任objectivec2swift.com:P

我還將.h文件中概述的變量和協議添加到了Swift文件中。

相關問題