Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Swift中向上滚动时,UITableview崩溃_Swift_Uitableview_Core Data - Fatal编程技术网

在Swift中向上滚动时,UITableview崩溃

在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

尝试向上滚动tableview时发生此崩溃。我的数组不是零。为什么每次我尝试向上滚动时它都会崩溃?我试图显示核心数据中的数据

这是我的密码:

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
?您不能访问模型对象上的属性吗?您可以发布您的
产品
类定义吗?