【发布时间】:2015-12-03 10:55:15
【问题描述】:
我遇到了一个非常简单的 CoreData 问题,但似乎很难解决。编写一个简单的聊天应用程序,每个用户都有很多消息。
class CoreUser: NSManagedObject
{
@NSManaged var firstname: String?
@NSManaged var id: String?
@NSManaged var lastname: String?
@NSManaged var nickname: String?
@NSManaged var messages: NSSet
}
class CoreMessage: NSManagedObject
{
@NSManaged var body: String?
@NSManaged var owner: CoreUser
@NSManaged var state: String
@NSManaged var timestamp: NSDate
}
关系是:一对多
获取用户实体:
func getCoreUser(userId: String) -> CoreUser?
{
var error: NSError?;
let fetchRequest = NSFetchRequest(entityName: "CoreUser");
let nodeId = NSString(string: userId.lowercaseString);
let pred = NSPredicate(format: "id == %@", nodeId);
fetchRequest.fetchLimit = 1;
fetchRequest.predicate = pred;
let fetchResults = self.managedObjectContext!.executeFetchRequest(fetchRequest, error: &error) as? [CoreUser];
if let results = fetchResults
{
return results.first;
}
return nil;
}
如何限制相关消息实体(20 条消息,按日期排序)。结果数组包含来自该用户的所有消息。
感谢您的帮助。
【问题讨论】:
标签: ios swift sqlite core-data