我正在swift中创建一个taskList应用程序,我的代码是:
import UIKit
class ViewController: UIViewController, UITextFieldDelegate, UITableViewDelegate, UITableViewDataSource {
var tableView : UITableView!
var textField : UITextField!
var tableViewData = ["My Text 1", "My Text 2"]
override func viewDidLoad() {
super.viewDidLoad()
//Set up textField
self.textField = UITextField(frame: CGRectMake(0, 0, self.view.bounds.size.width, 100))
self.textField.backgroundColor = UIColor.redColor()
self.view.addSubview(self.textField)
//Set up table view
self.tableView = UITableView(frame: CGRectMake(0, 100, self.view.bounds.size.width, self.view.bounds.size.height-100), style: UITableViewStyle.Plain)
self.tableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "myCell")
self.tableView.delegate = self
self.tableView.dataSource = self
self.view.addSubview(self.tableView)
}
//TableView Data source Delegate
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int{
return tableViewData.count
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell{
let myNewCell : UITableViewCell = tableView.dequeueReusableCellWithIdentifier("myCell", forIndexPath: indexPath) as UITableViewCell
//Here is the error
myNewCell.text = self.tableViewData[indexPath.row]
return myNewCell
}
}
错误是:
'text' is unavailable:APIs deprecated as of iOS 7 and earlier are unavailable in Swift
我是从教程中做到的,那个人使用的是xCode 6.0,我有xCode 6.1 beta版本我认为这是问题,因为我使用的是测试版。 任何人都可以解释一下这个错误是什么,我是swift的新手,所以任何人都可以告诉我该怎么做?
答案 0 :(得分:2)
您需要使用
myNewCell.textLabel?.text = self.tableViewData[indexPath.row]
过去曾经是:
myNewCell.text = self.tableViewData[indexPath.row]
但是他们将text属性嵌入到textLabel属性中。
答案 1 :(得分:1)
使用此
myNewCell.textLabel?.text = self.tableViewData[indexPath.row]
答案 2 :(得分:1)
您需要调用textLabel并且textLabel是可选的,因此您需要打开它:
if let textLabel = myNewCell.textLabel {
textLabel.text = self.tableViewData[indexPath.row]
}
或
myNewCell.textLabel?.text = self.tableViewData[indexPath.row]