CoreData 自定義資料型別

2021-06-12 09:34:38 字數 989 閱讀 5753

在coredata中,entity中attribute的型別只有固定的幾種可選。如下圖: 

有沒有方法擴充套件型別呢?方法當然是有的。原理是把要存型別轉化為二進位制的方式存在資料庫中。 比如我們要想直接存放uiimage到資料庫,如何做? 

首先,在coredata中新建的attribute中類形選擇transformable.  意思表示這個欄位是自定義的型別。然後在生成的nsmanagedobject檔案中,將型別id改為自己想要的型別,如uiimage. 

然後,新建類:uiimagetodatatransformer,繼承於nsvaluetransformer。**如下: 

@inte***ce uiimagetodatatransformer : nsvaluetransformer 

@end

#import "uiimagetodatatransformer.h"

@implementation uiimagetodatatransformer

+ (bool)allowsreversetransformation

+ (class)transformedvalueclass

- (id)transformedvalue:(id)value

- (id)reversetransformedvalue:(id)value

@end

然後在你的nsmanagedobject中註冊轉化類,那麼在存、取資料庫的時候就會進行轉化,如上面的uiimage 到 nsdata, nsdata到uiimage.  

+ (void)initialize 

}

這樣就可以直接存uiimage型別的資料到資料庫,實質還是存的二進位制。

自定義資料型別

include include using namespace std typedef double weight,tall struct student int main cout for int i 0 i 4 i return 0 貼上正確的輸出 這裡tall和weight都是自己可以輸入的 ...

自定義資料型別 列舉型別

學習了乙個月c語言,卻從來沒有更新過部落格,沒有總結的學習是不完整的。好了,其實我是走c 方向的,就提前看了c 的有關內容。c 除了和c語言一樣常用的資料型別,他們還有允許使用者自己來設計的一些資料型別,比如列舉型資料,結構型資料和鍊錶。我就簡單的總結下列舉型別。列舉型別允許使用者自己來定義一種資料...

自定義資料型別 結構型別

c 中自定義資料型別還有一種稱為結構型別,並且把該型別的各種資料型別一一整合到其中。學號 型別 姓名 字串 學生年齡 整型 院系 字串 平均成績 浮點型 每個學生的資訊成為了乙個整體,雜亂的資料和每個學生一一對應了起來,方便管理。如果需要建立學生型別,就可以這樣寫。include using nam...