簡體   English   中英

沒有實體核心數據的子類

[英]Subclass without entity core data

我有醫療補助實體。

MedicationEntity
name
dose
weekdays    //in case of daily and monthly this is null
monthdays   //in case of weekly and daily this is null
frequencyType  //Daily or weekly or monthly
etc

我想用每周和每月的葯物來細分這個實體,以便我可以使用多態性。但是我不想為此創建實體,原因是

在這些類別中,我沒有其他屬性,除了“每周”和“每月”用葯具有相同的屬性,但又有一個附加屬性,“每周”中有工作日,在“每月”中有生日。如果是“每日”葯物,我必須在工作日發送空值,因此,如果我將這些工作日和月日屬性子類化並將其移動到每周和每月子類中,則由於請求的DailyMedication類沒有已知參數,我將無法向服務器發送null,因此我將這些屬性保留在了Medication實體中。想要每天,每周和每月對這個實體進行子類化,而沒有核心數據模型中的實體。由於NSManagedObject不允許alloc init,如果我將它們作為子類化,因為它們不在核心數據模型中,那么如何獲取這些實體對象呢?

還有其他方法嗎? 我的主要問題是在服務器請求中的工作日和工作日發送null,而且我認為在核心數據模型中創建空實體沒有意義。

您不能擁有用於NSManagedObjects的 init:方法,因為它們與數據庫中的實體相關。 您只能在數據庫中創建實體並獲得對她的引用。 如果需要另一個實體,則應在模型中創建她。

另外,您可以使用兩個屬性: daysrepeatEvery ,可以是repeatEvery或其他任何值。 或者,您可以使用字典, repeatEvery:1 = dailyrepeatEvery:2 = monthly ,等等,然后僅將代碼保留在repeatEvery屬性中。

首先,您要混淆類和實體。 您可以有多個代表相同實體的類。 您在模型中不需要多個實體。 但是,即使那樣,對於您描述的情況來說也是過大的。

您在問題中列出的模型很好。 frequencyType確定Medication對象的狀態(順便說一句,刪除Entity這個詞是多余的,並且違反慣例)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM