勘定的“自我”当创建自定义的UITableViewCell斯威夫特

问题描述:

我想在我的Objective-C代码加载笔尖自定义UITableViewCell我这样做勘定的“自我”当创建自定义的UITableViewCell斯威夫特

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier 
{ 
    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; 
    if (self) { 
     NSArray *nibArray = [[NSBundle mainBundle]loadNibNamed:@"RouteCell" owner:self options:nil]; 
     self = [nibArray firstObject]; 
    } 
    return self; 
} 

当我试图实现在斯威夫特我这个方法不能找到一种方法来“翻译”的self = [nibArray firstObject]

这里是我的斯威夫特实施

override init(style: UITableViewCellStyle, reuseIdentifier: String!) { 

    super.init(style: style, reuseIdentifier: reuseIdentifier) 

    var nibArray = NSBundle.mainBundle().loadNibNamed("RouteCell", owner: self, options: nil) 
    self = nibArray.first 

} 

在最后一行我得到的错误。我如何在Swift中完成这项任务?

init swift中的方法与obj-c中的方法非常不同。您应该在这里阅读Apple文档:https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Initialization.html#//apple_ref/doc/uid/TP40014097-CH18-XID_318

self不能在swift中重写。

要为您的单元格使用自定义xib,可以考虑使用替代方法。这是一个想法:

var nipName=UINib(nibName: "RouteCell", bundle:nil) 

    self.tableView.registerNib(nipName, forCellReuseIdentifier: reuseIdentifier)