2011-04-21 41 views
0

我想要在Core Data中存儲/保存CGColor。如何在覈心數據中存儲CGColor?

目前,我存儲用浮漂紅,藍,綠顏色等

我需要存儲topColor和bottomColor,因爲它們是在一個非常簡單的梯度圖像用於化身的背景。

我目前的版本非常麻煩,需要我將RGB值存儲爲浮點數。這很麻煩,因爲我必須手動傳遞RGB值;而不是說通過實際的CGColor,然後分手/抓取RGB值。

無論如何,我的問題是如何將cgcolor存儲在覈心數據中,並歡迎任何支持,幫助或指導將cgcolor值存儲在覈心數據中的最佳方法。

謝謝。

// My current version follows... 
-(void)createColorScheme:(NSManagedObjectContext *)context withName:(NSString *)tColorName 
     withTopColorRed:(float)tColorRed 
     withTopColorBlue:(float)tColorBlue 
     withTopColorGreen:(float)tColorGreen 
     withBottomColorRed:(float)bColorRed 
    withBottomColorGreen:(float)bColorGreen 
    withBottomColorBlue:(float)bColorBlue 
{ 
    NSError *error; 

    ColorScheme *c = [NSEntityDescription insertNewObjectForEntityForName:@"ColorScheme" inManagedObjectContext:context]; 
    [c setName:@"Red"]; 
    [c setTaken:[NSNumber numberWithInt:0]]; 
    [c setTopColorRed:[NSNumber numberWithFloat:tColorRed]]; 
    [c setTopColorBlue:[NSNumber numberWithFloat:tColorBlue]]; 
    [c setTopColorGreen:[NSNumber numberWithFloat:tColorGreen]]; 
    [c setBottomColorRed:[NSNumber numberWithFloat:bColorRed]]; 
    [c setBottomColorGreen:[NSNumber numberWithFloat:bColorGreen]]; 
    [c setBottomColorBlue:[NSNumber numberWithFloat:bColorBlue]]; 

    if (! [context save:&error]) 
    { 
     NSLog(@"Unresolved Core Data Save error %@, %@", error, [error userInfo]); 
     exit(-1); 
    } 

    c = nil; 
} 

回答

3

您可能需要使用coredata的非標準持久屬性來保存CGColor。 This是蘋果的文檔。這SO鏈接解釋了一下..

+0

感謝您的SO鏈接,我發現這很有用。 – zardon 2011-04-22 08:53:21

0

我決定只是存儲浮動,並在需要時檢索它們。我知道它不是最好的方式,但它似乎工作。