在Swift中向上滚动时,UITableview崩溃
尝试向上滚动tableview时发生此崩溃。我的数组不是零。为什么每次我尝试向上滚动时它都会崩溃?我试图显示核心数据中的数据 这是我的密码:在Swift中向上滚动时,UITableview崩溃,swift,uitableview,core-data,Swift,Uitableview,Core Data,尝试向上滚动tableview时发生此崩溃。我的数组不是零。为什么每次我尝试向上滚动时它都会崩溃?我试图显示核心数据中的数据 这是我的密码: var product = [NSManagedObject]() func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return product.count } func tableView(tableView: UIT
var product = [NSManagedObject]()
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int
{
return product.count
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell
{
let cellIdentifier = "CheckOutTableViewCell"
let cell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier, forIndexPath: indexPath) as! CheckOutTableViewCell
let item = product[indexPath.row]
**每次我试图向上滚动我的表视图时,它都会在这里崩溃
cell.productTitle.text = item.valueForKey("name") as! String
cell.productDescription.text = item.valueForKey("size") as! String
return cell
}
func fetch() {
let moc = DataController().managedObjectContext
let productFetch = NSFetchRequest(entityName: "Product")
do {
let fetchedResults: [NSManagedObject] = try moc.executeFetchRequest(productFetch) as! [Product]
if let results: [NSManagedObject] = fetchedResults {
product = results
print("results:\(results.count)")
}
} catch let error as NSError {
print("Error: \(error.localizedDescription)")
}
}
产品名称:swift
import Foundation
import CoreData
class Product: NSManagedObject {
}
产品+CoreDataProperties.swift
import Foundation
import CoreData
extension Product {
@NSManaged var id: String?
@NSManaged var name: String?
@NSManaged var img: String?
@NSManaged var quantity: String?
@NSManaged var size: String?
@NSManaged var price: String?
@NSManaged var promo: String?
}
在获取产品之前,您应该检查数组的大小,并使用可选绑定(
,如果let
)检查字典中是否存在该值:
if indexPath.row < product.count {
let item = product[indexPath.row]
if let name = item.valueForKey("name") as? String {
cell.productTitle.text = name
}
if let size = item.valueForKey("size") as? String {
cell.productDescription.text = size
}
}
在获取产品之前,您应该检查数组的大小,并使用可选绑定(
如果let
)检查字典中是否存在该值:
if indexPath.row < product.count {
let item = product[indexPath.row]
if let name = item.valueForKey("name") as? String {
cell.productTitle.text = name
}
if let size = item.valueForKey("size") as? String {
cell.productDescription.text = size
}
}
你能添加崩溃日志吗?@ArnaudChrist我在上面用截图编辑,请看一看你能添加崩溃日志吗?@ArnaudChrist我在上面用截图编辑,请看一看当你有
产品
类时为什么要使用valueForKey
?您不能访问模型对象上的属性吗?您可以发布您的产品
类定义吗?当您拥有产品
类时,为什么要使用valueForKey
?您不能访问模型对象上的属性吗?您可以发布您的产品类定义吗?