菜鸟教程小白 发表于 2022-12-12 18:49:29

iOS - 在展开可选值时意外发现 nil


                                            <p><p>请帮忙,在我决定创建 loadData 函数并将它放在 if 子句中之前,代码已经工作了。所有其他意外发现的 nil 修复都涉及更改单元格声明的内容,我已经尝试过了,我觉得这个问题是由我放置 loadData 的位置引起的。</p>

<p>谢谢。</p>

<pre><code>import UIKit

class GroupsTableViewController: UITableViewController /* UITableViewDataSource, UITableViewDelegate */ {


let APP_ID = &#34;IGNORE&#34;
let SECRET_KEY = &#34;IGNORE&#34;
let VERSION_NUM = &#34;v1&#34;

var backendless = Backendless.sharedInstance()


@IBOutlet weak var table: UITableView!


var items=[&#34;Dog&#34;,&#34;Cat&#34;,&#34;Cow&#34;,&#34;Platypus&#34;]

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: &#34;cell&#34;)
    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) -&gt; Int {
    // #warning Incomplete implementation, return the number of sections
    return 1
}

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -&gt; Int {
    // #warning Incomplete implementation, return the number of rows
    return items.count
}



override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -&gt; UITableViewCell {
</code></pre>

<p> fatal error :在展开可选值时意外发现 nil:</p>

<pre><code>    let cell = self.table.dequeueReusableCellWithIdentifier(&#34;cell&#34;)! as UITableViewCell

    cell.textLabel!.text = self.items

    // Configure the cell...

    return cell
}

override func tableView(tableView: UITableView, didDeselectRowAtIndexPath indexPath: NSIndexPath) {
    print(&#34;You tapped on cell # \(indexPath.row)&#34;)
}

}
</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(&#34;cell&#34;, 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]
查看完整版本: iOS - 在展开可选值时意外发现 nil