2017-07-08 49 views
0

我使用核心數據來獲取診所列表,診所有名爲醫生的關係映射到醫生實體。Swift - 對NSSSet的內容進行排序

我的問題是,我每次取醫生的時候,它的類型是NSSSet的,記錄是隨機獲取,我想對它進行排序按字母順序使用Doctor.name

我嘗試以下

self.doctorList = clinic.doctors?.sortedArray(using: [NSSortDescriptor(key: "name", ascending: true)]) 

我哪裏錯了?

謝謝。

回答

1

(NS)Set是一個無序的集合類型。

要訂購Set將其轉換爲具有allObjects屬性的數組並對數組進行排序。

self.doctorList = (clinic.doctors!.allObjects as! [Doctor]).sorted(by: { $0.name < $1.name }) 

我建議聲明doctors關係爲非可選。如果沒有關聯的醫生,則該集合是空的。但是沒有任何醫生的診所是不太可能的;-)

+0

我得到一個錯誤,指出'不能調用'排序'類型的參數列表((Doctor,Doctor) - > Bool)1.期望的參數列表(醫生,博士) - >布爾)'' –

+0

我現在得到另一個錯誤,說'不能調用'排序'類型的參數列表(通過:(醫生,醫生) - >布爾) –

+0

我得到的當前數據夾具有很多沒有醫生的診所,我仍然需要存儲數據。因此,在我目前的情況下,將醫生關係視爲非選擇性不適用於我。 –

相關問題