7

I have a table view with custom cell that was created as .xib . I didnt use storyboard. I have a problem that I couldnt fill my table with the data which came from webservice result. Also, I have 4 labels in the custom cell. In my custom cell class, when I try to set labels for each items, It gives me fatal error like above.

Here is my code:

class ViewController: UIViewController, UITableViewDataSource, UITableViewDelegate { ... func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) -> UITableViewCell! { let cell: ItemManagementTVCell = tableView?.dequeueReusableCellWithIdentifier("cell") as ItemManagementTVCell if let ip = indexPath { let item: Item = self.itemList[indexPath.row] as Item cell.setCell(item.itemName, status: item.itemStatus, duration: item.itemDuration, price: item.itemPrice) } return cell } } 

And my custom cell class is here :

import UIKit

class ItemManagementTVCell: UITableViewCell { @IBOutlet var lblItemName: UILabel! @IBOutlet var lblItemPrice: UILabel! @IBOutlet var lblItemDuration: UILabel! @IBOutlet var lblItemStatus: UILabel! override func awakeFromNib() { super.awakeFromNib() } override func setSelected(selected: Bool, animated: Bool) { super.setSelected(selected, animated: animated) } func setCell(name: String, status: Int, duration: Int, price: Int) { self.lblItemName.text = name self.lblItemStatus.text = String(status) self.lblItemDuration.text = "Duration: \(String(duration)) months" self.lblItemPrice.text = String(price) + " $" } } 

I am getting the error inside of "setCell" method block.

I have read a lot of questions and solutions and I tried all of them it doesnt work for me.

Thank you for your answers,

Best regards.

SOLUTION: I've solved this problem by linking the cell items to cell's own instead of linking to File's Owner. My problem has gone by doing this.

3
  • Can you add the solution here? Commented Nov 26, 2014 at 20:31
  • This is very simple, I'll explain it step by step 1-) Click your cell 2-) click the connections inspector which is located in "Hides or show Utilities" menu on the right side. 3-) Click the File's Owner, if there is any connected items, delete all of them. Then click cell view and connect your cell items there. Note: I did not use storyboard. This solution for xibs. @neosergio Commented Nov 27, 2014 at 13:17
  • I had a similar problem with this code getting "fatal error, unexpectedly found nil". But it was crazy because if I inserted... print(indexPath) print(tableView) I could clearly see that neither was nil. Even worse, it was an intermittent problem. Sometimes it worked and other times it didn't. Commented Feb 24, 2016 at 15:02

2 Answers 2

10

Another solution to the problem without having to link cell items to the cell owner:

let nib = UINib(nibName: "YOUR_CUSTOM_CELL_NIB_NAME", bundle: nil) tableView.register(nib, forCellReuseIdentifier: "YOUR_CUSTOM_CELL_ID") 
Sign up to request clarification or add additional context in comments.

Comments

8

Your "cell" must be nil.

Using

tableView.dequeueReusableCellWithIdentifier("cell") as ItemManagementTVCell 

Can return nil. You should use:

tableView.dequeueReusableCellWithIdentifier("cell" forIndexPath:indexPath) as ItemManagementTVCell 

This way it guarantees cells is not nil.

EDIT: Maybe you can prevent the crash by putting if statements inside "setCell"

if var itemName = self.lblItemName { itemName.text = name } 

Do that for every label you set inside it and check if the crash still happens. If it don't you must check why those labels are nil.

5 Comments

Can you put a breakpoint inside setCell block and check if something inside is "nil"?
I think the problem is related to labels becasue when I initialize the labels, it doesnt throw any exception, but there is not any item in tableview. It is empty. Are there any error related to labels ?
I edited the answer with a possible solution. Check that please.
I have tried, but it doesnt work still :( Thank you for your answers.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.