0
我有兩個實體,用戶和任務。他們是由一個一對多的關係連接,這是他們的樣子Swift一對多關係
import Foundation
import CoreData
@objc(User)
class User: NSManagedObject {
@NSManaged var id: String
@NSManaged var name: String
@NSManaged var task: NSSet
}
和
import Foundation
import CoreData
@objc(Task)
class Task: NSManagedObject {
@NSManaged var context: String
@NSManaged var date: String
@NSManaged var detail: String
@NSManaged var folder: String
@NSManaged var id: String
@NSManaged var responsable: String
@NSManaged var status: String
@NSManaged var summary: String
@NSManaged var user: User
}
在xcdatamodel的關係是:
relationship: user, destination: User, Inverse: task for Task
relationship: task, destination: Task, Inverse: user for User
我有我的fetchedResultController那讓我在任務表上完成我的請求:
func getFetchedResultsController(String) -> NSFetchedResultsController{
frc = NSFetchedResultsController(fetchRequest: taskFetchRequest(folder), managedObjectContext: context!, sectionNameKeyPath: nil, cacheName: nil)
return frc
}
func taskFetchRequest(String) -> NSFetchRequest {
//on choisit sur quel Entity on travaille
let fetchRequest = NSFetchRequest(entityName: "Task")
//on Choisit sur quel attribut on place l'Order By. Ici sur Summary en Ascendant
let predicate = NSPredicate(format: "folder = %@", folder)
let sortDescriptor = NSSortDescriptor(key: "summary", ascending: true)
fetchRequest.predicate = predicate
fetchRequest.sortDescriptors = [sortDescriptor]
return fetchRequest
}
在這兩個實體,我有一個共同的屬性,的User
id
和Task
responsable
是同樣的事情,我需要做的是,對於具有135482dfsq4g1
負責,打印的用戶實體對應的名稱(以便任務該ID 135482dfsq4g1
)
我已經做了一些測試,但沒有有效的,就像這樣:
var task : Task?
var user : User?
if(task?.responsable == user?.id){
OwnerTextField.text = user?.name
}else{
println(task?.responsable)
println(user?.id)
OwnerTextField.text = ""
}
任務.responsable被發現,但不是用戶.ID,所以我不能比較:??
Optional("76bbfe695318d471a541bc3333e58eea28acae54")
nil
任何幫助,將不勝感激。
問候。
爲什麼你有一個負責任的財產和用戶關係?一個任務可以有約翰作爲用戶端安娜作爲負責任? –
任務有一個負責人(一個用戶),但用戶可以有幾個任務。 用戶是一個表,其中包含用戶的名稱和ID。任務只有用戶標識。我需要打印用戶名而不是id,這就是爲什麼我要這樣做的關係,這是錯誤的嗎? – fselva