[英]IOS/Objective-C: Convert standard UIColor to CGColor
我在另一個類的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;
編輯
如果尚未將UIColor
保存在NSUSerDefaults
請檢查此答案以獲取有關如何正確存儲和檢索它的示例。
您不能將UIColor對象直接保存在NSUserDefaults中。
嘗試歸檔對象以獲取數據並保存數據,如下所示:
UIColor *color = [UIColor redColor];
NSData *colorData = [NSKeyedArchiver archivedDataWithRootObject:color];
[[NSUserDefaults standardUserDefaults] setObject:colorData forKey:@"ColorKey"];
當您首先需要顏色時,應從“用戶默認值”中獲取NSData對象,然后創建如下的UIColor對象
NSData *colorData = [[NSUserDefaults standardUserDefaults] objectForKey:@"ColorKey"];
UIColor *color = [NSKeyedUnarchiver unarchiveObjectWithData:colorData];
我認為您尚未在這一行中創建myColor
對象。
UIColor* myColor = [[NSUserDefaults standardUserDefaults] objectForKey:myColor];
struct CGColor* circleColor = nil;
首先初始化該對象,然后使用您的user defaults
分配給該對象,然后進行相應處理。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.