我是swift和CoreData的新手,我遇到了一个问题:
我有两列数据库:例如“name”和“number” 姓名 鲍勃2 海伦娜5 赫尔加1 Matilda 0
我在CoreData上连接我的UITableViewController和DB,它正在工作(我在iphone模拟器中看到所有数据库)
我想在我的数据库单元格中使用swift查找带有值的数字“number”,例如“1”和“2”,并从列“name”显示正确的单元格,结果我想看到: 鲍勃2 Helga 1
如何做得更好?我尝试使用NSPredicate,但我不明白它是如何工作的以及如何使它能够工作。
谢谢!
答案 0 :(得分:1)
您好在NSManagedObject扩展程序中添加以下功能
1)使用预测
从id获取coredata中的数据Cheese:: {
Cheese() { //constructor stuff };
... // other constructors, copy, etc.
~Cheese() { //destructor stuff };
int weigh() { return weighed; }
int shred() { return shredded; }
int melt() { return melted; }
}
它将按行id
返回预测列名数据2)从coredata
获取所有数据class func Search(PredictName:String, Uid:String, entityDescription: String,managedObjectContext: NSManagedObjectContext = appDelegate.managedObjectContext) -> [AnyObject]?
{
var ar:[AnyObject] = []
do
{
let predicate = NSPredicate(format: "\(PredictName) == %@", Uid)
let request = NSFetchRequest(entityName: entityDescription)
request.predicate = predicate
let result = try managedObjectContext.executeFetchRequest(request)
ar = result
}
catch(_)
{
ar = []
}
return ar as [AnyObject]
}
Function Call :
var lists:[ModelClassName]? = AdvertisementDataList.findByTypeInContext("user_id", url: self.Uid, entityDescription: "CoredataEntityName") as? [AdvertisementDataList]
功能调用:
class func Search(PredictName:String, entityDescription: String,managedObjectContext: NSManagedObjectContext = appDelegate.managedObjectContext) -> [AnyObject]?
{
var ar:[AnyObject] = []
do
{
let predicate = NSPredicate(format: "\(PredictName)")
let request = NSFetchRequest(entityName: entityDescription)
request.predicate = predicate
let result = try managedObjectContext.executeFetchRequest(request)
ar = result
}
catch(_)
{
ar = []
}
return ar as [AnyObject]
}
它将通过预测名称返回所有数据。