2009-09-19 85 views
1

我正在構建一個核心數據模型,我的一個類需要有一個最適合作爲typedef實現的變量。現在我正在將它作爲一個字符串變量來實現,它有三個可能的值,但當然這不是健壯的。typedef作爲核心數據類型

有沒有一種方法可以在覈心數據模型中實現這一點?

回答

1

我看過最近使用枚舉typedef,並將其作爲NSNumber存儲在覈心數據中。我實現了我自己的NSManagedObject的子類,併爲我的類型創建了一個屬性。在存取我再轉換爲和的NSNumber:

- (MyTypedef)type { 
    NSNumber *value = [self primitiveValueForKey:@"type"]; 
    return [value integerValue]; 
} 

- (void)setType:(MyTypedef)aType { 
    NSNumber *value = [NSNumber numberWithInteger:aType]; 
    [self setPrimitiveValue:value forKey:@"type"]; 
} 

最終我沒有這個解決方案去,但它爲我工作得很好,那麼(在iPhone)。不知道上面的代碼是否絕對正確 - 我把它打入瀏覽器窗口。

如果您想使用KVO等,可能需要更多的工作,您可能需要在訪問器方法中執行一些錯誤檢查,以檢查您在NSNumber中取回的內容是否在枚舉中實際有效。

1

您可以具有未定義類型的整數屬性和transcient屬性,它是根據整數屬性值進行初始化的嗎?