Crashlytics说有几起崩溃是随机发生的。
请考虑以下代码:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("NewsfeedItemCell", forIndexPath: indexPath) as NewsfeedItemTableViewCell
let newsfeedItem = self.newsfeedItems[indexPath.row]
// This line gives crash: EXC_BAD_ACCESS KERN_INVALID_ADDRESS at 0x0000000000000000
let text = newsfeedItem.text as NSString
cell.descriptionLabel.text = text
return cell
}
这是NewsfeedItem
类:
class NewsfeedItem: NSManagedObject {
@NSManaged var date: NSDate
@NSManaged var sku: String
@NSManaged var text: String
var dataItem: DataItem?
}
PS:请注意NewsfeedItem.text
属性不是可选的,因此它不能是nil
!
答案 0 :(得分:1)
您确定您的NewsfeedItem文字不是零吗?如果你不先检查
if let text = newsfeedItem.text as? NSString{
cell.descriptionLabel.text = text
}
答案 1 :(得分:0)
我对swift没有任何想法。 但该例外明确表示其关于访问非String值 。这意味着您访问的是nil对象,或者不是字符串对象。
可能self.newsfeedItems
是NewsfeedItem
的对象,所以你试图访问它的(iVar)字符串。