HEX value in Objective-C

ios, iphone, objective-c, uicolor

Solution

You can either use your macro directly with hex integers like this:

UIColorFromRGB(0xff4433)

Or you can parse the hex-string into an integer like this:

unsigned colorInt = 0;
[[NSScanner scannerWithString:hexString] scanHexInt:&colorInt];
UIColorFromRGB(colorInt)

Problem

I want to create UIColor from HEX value. But my Color is a NSString. So i implement this solution: How can I create a UIColor from a hex string? code: ``` #define UIColorFromRGB(rgbValue) [UIColor \ colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 \ green:((float)((rgbValue & 0xFF00) >> 8))/255.0 \ blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0] ``` And then i have (simplify): ``` NSString *myString = [[NSString alloc] initWithString:@"0xFFFFFF"]; ``` So when i want to call macro: ``` UIColor *myColor = UIColorFromRGB(myString); ``` I'm getting an error: `invalid operands to binary expression ('NSString *' and 'int')` So i know i have to pass int, but how to convert NSString to int in this case? Of course `[myString intValue];` does not work here.

Original source

Related problems