Я разрабатываю приложение, похожее на простое приложение для чата, и мне нужно использовать основные данные для сохранения/выборки чатов на основе конкретного пользователя. Теперь я успешно создал модель для сохранения пользователей, теперь мне нужно связать их с их чатами. Для сохранения пользовательских данных я создал Entity UserData и ниже мои быстрые файлыСоздание основных данных для приложения чата в swift
UserData + CoreDataProperties.swift
import Foundation
import CoreData
extension UserData {
@NSManaged var firstName: String?
@NSManaged var userStatus: String?
@NSManaged var userId: String?
@NSManaged var userStatus: String?
@NSManaged var lastName: String?
@NSManaged var profilePic: String?
}
UserData.swift
class UserData: NSManagedObject {
convenience init(WithDictionary dict:NSDictionary){
let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
let managedContext = appDelegate.managedObjectContext
let newEntity = NSEntityDescription.entityForName("UserData", inManagedObjectContext:managedContext)
// initializer on NSManagedObject class
self.init(entity: newEntity!, insertIntoManagedObjectContext: managedContext)
self.userId = (dict.valueForKey(ID) != nil) && !(dict.valueForKey(ID) is NSNull)
? dict.valueForKey(ID) as! String
: ""
//similary initializing other variables
//Saving to database
do {
try managedContext.save()
} catch let error as NSError {
print("Could not save \(error), \(error.userInfo)")
}
}
Я был в состоянии для успешного сохранения списка пользователей с помощью этого класса. Теперь я создал объект ChatData, ниже - его структура.
ChatData + CoreDataProperties.swift
import Foundation
import CoreData
extension ChatData {
@NSManaged var chatId: String?
@NSManaged var chatOwnerName: String?
@NSManaged var chatReadStatus: Boolean?
@NSManaged var chatText: String?
@NSManaged var chatTimestamp: String?
@NSManaged var chatType: String?
@NSManaged var imageData: String?
@NSManaged var imageUrl: String?
}
Теперь для каждого конкретного пользователя, я должен быть в состоянии создать несколько объектов ChatData, соответствующих конкретному USERID. У меня нет большого опыта работы с основными данными. Я рассмотрел некоторые примеры создания отношений, но я все еще не уверен, как это работает. Нужно ли мне создавать отношения? Если да, то как мне это сделать, чтобы сделать эту работу?
Попробованная базы данных царств: http://realm.io/? Гораздо проще в использовании, чем Core Data, нет необходимости в настройке кода шаблонов Core Data. – Zhang
Да, используйте отношения. @Zhang, вы также должны указать ограничения в области, о которых вы пришли, чтобы порекомендовать его, в частности, не указав на то, как это может помочь в заданном вопросе ... – Wain
Я не знаю ограничений в области, я не эксперт в этом, он делает работу для меня. Единственное, что я знаю, это отсутствие синхронизации iCloud, например, CoreData. Я не хочу вводить вводящие в заблуждение ограничения в отношении того, что я не эксперт: D Кроме того, это комментарий, а также вопрос-комментарий, а не ответ: D – Zhang