在创建自定义UITableViewCell Swift时分配'self'

时间:2014-09-13 17:43:10

标签: ios uitableview swift

我正在尝试在我的Objective-C代码中为自定义UITableViewCell加载一个nib我正在这样做

- (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;
}

当我尝试在Swift中实现此方法时,我找不到一种方法来翻译' self = [nibArray firstObject]

这是我的Swift实现

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

}

在最后一行,我收到错误Cannot assign self in a method。如何在Swift中完成这项任务?

1 个答案:

答案 0 :(得分:3)

swift中的

init方法与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

无法在swift中覆盖

self

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

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

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