Я сомневаюсь, что что-нибудь будет быстрее или короче, чем этот:
"#"+((1<<24)*Math.random()|0).toString(16)
Испытание!
В прошлом у меня отлично работало преобразование значения CGFloat с использованием синтаксиса (). CGFloat просто определяется как "typedef float CGFloat;" поэтому вы выполняете приведение его так же, как и float:
CGFloat f = (CGFloat)intVal;
или, если ваше значение является константой:
CGFloat f = 1.10;