繁体   English   中英

如何在核心数据中存储CGColor?

[英]How to store CGColor in Core Data?

我想在核心数据中存储/保存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;
}

您可能需要使用coredata的非标准持久性属性来保存CGColor。 是苹果公司的文档。 SO链接对此有所解释。

我决定只存储花车,并在需要时根据需要进行检索。 我知道这不是最好的方法,但是它似乎有效。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM