Ios 从CoreData获取返回任何对象
我从coreData中获取实体数据,它返回任何对象,我在NSDictionary和NSArray中尝试了很多转换,但它不能转换任何类型Ios 从CoreData获取返回任何对象,ios,swift,core-data,Ios,Swift,Core Data,我从coreData中获取实体数据,它返回任何对象,我在NSDictionary和NSArray中尝试了很多转换,但它不能转换任何类型 var dictData:NSDictionary? let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate let context = appDelegate.managedObjectContext; // self.select
var dictData:NSDictionary?
let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
let context = appDelegate.managedObjectContext;
// self.selectedArray = response.objectForKey("retailers") as! NSArray;
let fetchRequest2 = NSFetchRequest()
let entityDescription2 = NSEntityDescription.entityForName("Offers", inManagedObjectContext: context)
fetchRequest2.entity = entityDescription2
//fetchRequest2.returnsObjectsAsFaults = false
do {
let result2 : NSDictionary = try context.executeFetchRequest(fetchRequest2) as! NSDictionary
print("Result:",result2)
for result in (result2 as? NSDictionary)!{
if let data : NSDictionary = result as? NSDictionary{
print(data)
}
print("result: ",result)
print("dictData:",dictData)
报价实体不包含任何字段。请帮忙。我们将不胜感激
var dictData:NSDictionary?
let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
let context = appDelegate.managedObjectContext;
// self.selectedArray = response.objectForKey("retailers") as! NSArray;
let fetchRequest2 = NSFetchRequest()
let entityDescription2 = NSEntityDescription.entityForName("Offers", inManagedObjectContext: context)
fetchRequest2.entity = entityDescription2
//fetchRequest2.returnsObjectsAsFaults = false
do {
let result2 : NSDictionary = try context.executeFetchRequest(fetchRequest2) as! NSDictionary
print("Result:",result2)
for result in (result2 as? NSDictionary)!{
if let data : NSDictionary = result as? NSDictionary{
print(data)
}
print("result: ",result)
print("dictData:",dictData)
`}
context.executeFetchRequest()
返回[AnyObject]
,而不是AnyObject
var dictData:NSDictionary?
let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
let context = appDelegate.managedObjectContext;
// self.selectedArray = response.objectForKey("retailers") as! NSArray;
let fetchRequest2 = NSFetchRequest()
let entityDescription2 = NSEntityDescription.entityForName("Offers", inManagedObjectContext: context)
fetchRequest2.entity = entityDescription2
//fetchRequest2.returnsObjectsAsFaults = false
do {
let result2 : NSDictionary = try context.executeFetchRequest(fetchRequest2) as! NSDictionary
print("Result:",result2)
for result in (result2 as? NSDictionary)!{
if let data : NSDictionary = result as? NSDictionary{
print(data)
}
print("result: ",result)
print("dictData:",dictData)
您需要执行以下操作:
var dictData:NSDictionary?
let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
let context = appDelegate.managedObjectContext;
// self.selectedArray = response.objectForKey("retailers") as! NSArray;
let fetchRequest2 = NSFetchRequest()
let entityDescription2 = NSEntityDescription.entityForName("Offers", inManagedObjectContext: context)
fetchRequest2.entity = entityDescription2
//fetchRequest2.returnsObjectsAsFaults = false
do {
let result2 : NSDictionary = try context.executeFetchRequest(fetchRequest2) as! NSDictionary
print("Result:",result2)
for result in (result2 as? NSDictionary)!{
if let data : NSDictionary = result as? NSDictionary{
print(data)
}
print("result: ",result)
print("dictData:",dictData)
if let results = context.executeFetchRequest(fetchRequest2) as? [MyObjectType] {
for object in results {
//do thing
}
}
根据其签名,executeFetchRequest始终返回
任意对象的数组。AnyObject,因为返回值可以是NSManagedObject
或Dictionary
,具体取决于获取请求
var dictData:NSDictionary?
let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
let context = appDelegate.managedObjectContext;
// self.selectedArray = response.objectForKey("retailers") as! NSArray;
let fetchRequest2 = NSFetchRequest()
let entityDescription2 = NSEntityDescription.entityForName("Offers", inManagedObjectContext: context)
fetchRequest2.entity = entityDescription2
//fetchRequest2.returnsObjectsAsFaults = false
do {
let result2 : NSDictionary = try context.executeFetchRequest(fetchRequest2) as! NSDictionary
print("Result:",result2)
for result in (result2 as? NSDictionary)!{
if let data : NSDictionary = result as? NSDictionary{
print(data)
}
print("result: ",result)
print("dictData:",dictData)
默认返回值是非可选的[NSManagedObject]
var dictData:NSDictionary?
let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
let context = appDelegate.managedObjectContext;
// self.selectedArray = response.objectForKey("retailers") as! NSArray;
let fetchRequest2 = NSFetchRequest()
let entityDescription2 = NSEntityDescription.entityForName("Offers", inManagedObjectContext: context)
fetchRequest2.entity = entityDescription2
//fetchRequest2.returnsObjectsAsFaults = false
do {
let result2 : NSDictionary = try context.executeFetchRequest(fetchRequest2) as! NSDictionary
print("Result:",result2)
for result in (result2 as? NSDictionary)!{
if let data : NSDictionary = result as? NSDictionary{
print(data)
}
print("result: ",result)
print("dictData:",dictData)
let result2 = try context.executeFetchRequest(fetchRequest2) as! [NSManagedObject]
该类型的强制展开是安全的。在这种情况下,不需要可选绑定
var dictData:NSDictionary?
let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
let context = appDelegate.managedObjectContext;
// self.selectedArray = response.objectForKey("retailers") as! NSArray;
let fetchRequest2 = NSFetchRequest()
let entityDescription2 = NSEntityDescription.entityForName("Offers", inManagedObjectContext: context)
fetchRequest2.entity = entityDescription2
//fetchRequest2.returnsObjectsAsFaults = false
do {
let result2 : NSDictionary = try context.executeFetchRequest(fetchRequest2) as! NSDictionary
print("Result:",result2)
for result in (result2 as? NSDictionary)!{
if let data : NSDictionary = result as? NSDictionary{
print(data)
}
print("result: ",result)
print("dictData:",dictData)
如果您使用的是NSManagedObject
的子类,您甚至可以将返回值转换为该类型。您能解释一下[MyObjectType]是什么实体类型吗?我知道它返回NSManagedObject,但我能将NSManagedObject转换为nsdictionary或nsarray吗?我需要进一步解释它返回[NSManagedObject]
。不要使用NSDictionary
或NSArray
,使用Swift原生类型Dictionary
和数组
<代码>[NSManagedObject]
是一个数组。[NSManagedObject]是一个字典数组。可以像使用任何其他数组一样使用它。
var dictData:NSDictionary?
let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
let context = appDelegate.managedObjectContext;
// self.selectedArray = response.objectForKey("retailers") as! NSArray;
let fetchRequest2 = NSFetchRequest()
let entityDescription2 = NSEntityDescription.entityForName("Offers", inManagedObjectContext: context)
fetchRequest2.entity = entityDescription2
//fetchRequest2.returnsObjectsAsFaults = false
do {
let result2 : NSDictionary = try context.executeFetchRequest(fetchRequest2) as! NSDictionary
print("Result:",result2)
for result in (result2 as? NSDictionary)!{
if let data : NSDictionary = result as? NSDictionary{
print(data)
}
print("result: ",result)
print("dictData:",dictData)