我正在尝试在我的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中完成这项任务?
答案 0 :(得分:3)
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
self
。
要为您的单元格使用自定义xib,您可以考虑使用其他方法。这是一个想法:
var nipName=UINib(nibName: "RouteCell", bundle:nil)
self.tableView.registerNib(nipName, forCellReuseIdentifier: reuseIdentifier)