IOS/Objective-C: 将标准 UIColor 转换为 CGColor
IOS/Objective-C: Convert standard UIColor to CGColor
我在另一个 class 的 NSUserDefault 中设置了颜色,现在想将其转换为 CGColor 以进行显示。我可以将实际的 UIColor 转换为 CGColor。但是我无法将存储在变量中的 UIColor 转换为 CGColor
UIColor* myColor = [[NSUserDefaults standardUserDefaults] objectForKey:myColor];
struct CGColor* circleColor = nil;
circleColor=[[UIColor greenColor]CGColor];//this works
circleColor=[[myColor] CGColor];//does not work
circleColor=[myColor CGColor];//does not work
任何人都可以建议正确的方法吗?
注意:由于需要桥接,我没有在userdefaults中保存一个cgcolor
替换
circleColor = [[myColor] CGColor];//does not work
和
circleColor = myColor.CGColor;
编辑
如果您尚未在 NSUSerDefaults
中保存您的 UIColor
,请查看 this answer 以获取有关如何正确存储和检索它的示例。
我认为您没有在这一行中创建 myColor
对象。
UIColor* myColor = [[NSUserDefaults standardUserDefaults] objectForKey:myColor];
struct CGColor* circleColor = nil;
首先初始化那个对象,然后用你的 user defaults
赋值给那个对象,然后相应地进行。
您不能直接在 NSUserDefaults 中保存 UIColor 对象。
尝试归档对象以获取数据并像这样保存数据:
UIColor *color = [UIColor redColor];
NSData *colorData = [NSKeyedArchiver archivedDataWithRootObject:color];
[[NSUserDefaults standardUserDefaults] setObject:colorData forKey:@"ColorKey"];
当你首先需要颜色时,你应该从 User Defaults 中获取 NSData 对象,然后像这样创建 UIColor 对象
NSData *colorData = [[NSUserDefaults standardUserDefaults] objectForKey:@"ColorKey"];
UIColor *color = [NSKeyedUnarchiver unarchiveObjectWithData:colorData];
我在另一个 class 的 NSUserDefault 中设置了颜色,现在想将其转换为 CGColor 以进行显示。我可以将实际的 UIColor 转换为 CGColor。但是我无法将存储在变量中的 UIColor 转换为 CGColor
UIColor* myColor = [[NSUserDefaults standardUserDefaults] objectForKey:myColor];
struct CGColor* circleColor = nil;
circleColor=[[UIColor greenColor]CGColor];//this works
circleColor=[[myColor] CGColor];//does not work
circleColor=[myColor CGColor];//does not work
任何人都可以建议正确的方法吗?
注意:由于需要桥接,我没有在userdefaults中保存一个cgcolor
替换
circleColor = [[myColor] CGColor];//does not work
和
circleColor = myColor.CGColor;
编辑
如果您尚未在 NSUSerDefaults
中保存您的 UIColor
,请查看 this answer 以获取有关如何正确存储和检索它的示例。
我认为您没有在这一行中创建 myColor
对象。
UIColor* myColor = [[NSUserDefaults standardUserDefaults] objectForKey:myColor];
struct CGColor* circleColor = nil;
首先初始化那个对象,然后用你的 user defaults
赋值给那个对象,然后相应地进行。
您不能直接在 NSUserDefaults 中保存 UIColor 对象。
尝试归档对象以获取数据并像这样保存数据:
UIColor *color = [UIColor redColor];
NSData *colorData = [NSKeyedArchiver archivedDataWithRootObject:color];
[[NSUserDefaults standardUserDefaults] setObject:colorData forKey:@"ColorKey"];
当你首先需要颜色时,你应该从 User Defaults 中获取 NSData 对象,然后像这样创建 UIColor 对象
NSData *colorData = [[NSUserDefaults standardUserDefaults] objectForKey:@"ColorKey"];
UIColor *color = [NSKeyedUnarchiver unarchiveObjectWithData:colorData];