iOS - 在展开可选值时意外发现 nil
<p><p>请帮忙,在我决定创建 loadData 函数并将它放在 if 子句中之前,代码已经工作了。所有其他意外发现的 nil 修复都涉及更改单元格声明的内容,我已经尝试过了,我觉得这个问题是由我放置 loadData 的位置引起的。</p>
<p>谢谢。</p>
<pre><code>import UIKit
class GroupsTableViewController: UITableViewController /* UITableViewDataSource, UITableViewDelegate */ {
let APP_ID = "IGNORE"
let SECRET_KEY = "IGNORE"
let VERSION_NUM = "v1"
var backendless = Backendless.sharedInstance()
@IBOutlet weak var table: UITableView!
var items=["Dog","Cat","Cow","Platypus"]
override func viewDidLoad() {
super.viewDidLoad()
// Uncomment the following line to preserve selection between presentations
// self.clearsSelectionOnViewWillAppear = false
// Uncomment the following line to display an Edit button in the navigation bar for this view controller.
// self.navigationItem.rightBarButtonItem = self.editButtonItem()
}
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
backendless.initApp(APP_ID, secret:SECRET_KEY, version:VERSION_NUM)
self.backendless.userService.getPersistentUser()
let user = self.backendless.userService.currentUser
if (user != nil) {
self.loadData()
} else {
Utilities.loginUser(self)
}
self.tableView.rowHeight = UITableViewAutomaticDimension;
self.tableView.estimatedRowHeight = 120.0;
}
func loadData() {
self.table.registerClass(UITableViewCell.self, forCellReuseIdentifier: "cell")
self.table.dataSource = self
self.table.delegate = self
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
// MARK: - Table view data source
override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
// #warning Incomplete implementation, return the number of sections
return 1
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
// #warning Incomplete implementation, return the number of rows
return items.count
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
</code></pre>
<p> fatal error :在展开可选值时意外发现 nil:</p>
<pre><code> let cell = self.table.dequeueReusableCellWithIdentifier("cell")! as UITableViewCell
cell.textLabel!.text = self.items
// Configure the cell...
return cell
}
override func tableView(tableView: UITableView, didDeselectRowAtIndexPath indexPath: NSIndexPath) {
print("You tapped on cell # \(indexPath.row)")
}
}
</code></pre>
<p>请帮忙,在我决定创建 loadData 函数并将它放在 if 子句中之前,代码已经工作了。所有其他意外发现的 nil 修复都涉及更改单元格声明的内容,我已经尝试过了,我觉得这个问题是由我放置 loadData 的位置引起的。</p>
<p>谢谢。</p></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>我改写了两行代码,让你的代码更稳定,解决bug:</p>
<pre><code>let cell = self.table.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath)
cell.textLabel?.text = self.items
</code></pre></p>
<p style="font-size: 20px;">关于iOS - 在展开可选值时意外发现 nil,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/35929751/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/35929751/
</a>
</p>
页:
[1]