以下是我的代码示例:
override func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) -> UITableViewCell! {
var cell : goalTermCell
if i == 1 {
cell = tableView.dequeueReusableCellWithIdentifier("termCell",
forIndexPath: indexPath) asf goalTermCell
}
else if i == 2 {
cell = tableView.dequeueReusableCellWithIdentifier("termCell",
forIndexPath: indexPath) as goalTermCell
}
return cell
}
Xcode表示该变量在初始化之前使用。 我知道这段代码很愚蠢,它只是一个用于学习UI表的PoC
答案 0 :(得分:0)
问题是我可能是1或2以外的东西,因此编译器会看到如果发生了什么,并且在这种情况下,单元格未设置。在这种情况下,它将被返回(即使用)而不被设置。
在这种情况下,我会使用一个case语句,默认替换if。
我注意到你的代码是不完整的,因为它没有在任何地方设置,因此这个解决方案可能有其他问题。
答案 1 :(得分:0)
您可以使用
switch i {
case 1:
cell = whatEverYouWantItToBe
case 2:
cell = whatEverYouWantItToBe
default:
cell = whatEverYouWantItToBeWheniIsNot1or2
}
或
if i == 1 {
cell = whatEverYouWantItToBe
}
else if i == 2 {
cell = whatEverYouWantItToBe
}
else {
cell = whatEverYouWantItToBeWheniIsNot1or2
}
或
cell = whatEverYouWantItToBeWheniIsNot1or2
if i == 1 {
cell = whatEverYouWantItToBe
}
else if i == 2 {
cell = whatEverYouWantItToBe
}
无论哪种方式,现在如果'i'恰好是1或2以外的东西,当从函数返回时,单元格仍将被初始化