【发布时间】:2017-03-10 07:19:00
【问题描述】:
当我向 CoreData 的一个实体插入数据时,所有行都已成功插入(已保存)。
但是当我尝试使用 FetchRequest 获取数据时,即使插入的行数是 3 或 4 或任何(超过 1),也只有一行数据。 剩余的行没有被获取。当我打印获取结果时,
它说 - 错误
0:<EquipmentDetails: 0x6000000bad60>
(entity: EquipmentDetails; id: 0xd000000000040000
coredata:/EquipmentDetails/p1> **data:fault>)**
我没有了解核心数据后端的情况?
插入代码
func insertEqipToLocalDb()
{
let mobileNo : String = UserDefaults.standard.string(forKey: "phoneNumber")!
let equipDetailsItem = NSEntityDescription.insertNewObject(forEntityName: "EquipmentDetails", into:managedObjContext) as! EquipmentDetails
for (index,item) in array_IDEquip.enumerated()
{
equipDetailsItem.mobileNumber = mobileNo
equipDetailsItem.type = array_typeEquip[index]
equipDetailsItem.name = array_nameEquip[index]
equipDetailsItem.startDate = array_sDateEquip[index]
equipDetailsItem.endDate = array_eDateEquip[index]
equipDetailsItem.equpID = Int16(item)
equipDetailsItem.serviceDatesStr = array_serviceDateEquip[index]
}
do
{
try managedObjContext.save()
UserDefaults.standard.set("AlreadyInstalled", forKey: "statusInstallation")
}
catch
{
Exception.insertExceptionDetails(errorMsg: error as NSError, context: managedObjContext)
}
}
//获取代码
let request = NSFetchRequest<NSFetchRequestResult>()
let entity = NSEntityDescription.entity(forEntityName:"EquipmentDetails", in: managedObjContext)
request.entity = entity
do
{
let fetchResults = try managedObjContext.fetch(request)
for r in fetchResults
{
typeEquipArray.append((r as AnyObject).value(forKey: "type") as! String)
}
}
catch let error as NSError
{
Exception.insertExceptionDetails(errorMsg: error, context: managedObjContext)
}
【问题讨论】:
-
您的代码示例?
-
根据您读取数据的方式,我会说...哎呀,没有代码,所以没有人可以说太多
-
@Socraties Srikanth 请使用所需的代码更新您的问题!
-
Core Data Fault的可能重复
标签: ios swift core-data nsfetchrequest