This is what OS X\'s built in color inversion feature can turn your screen into:
>
This article explains how another user inverted his colors, however that wouldn't be an overlay, it would still accomplish your goal. Although this is in C# that would be your basic premise perhaps,a s those same ideas can work in Obj-c.
Basically this article says to convert your RGB color in HSV mode then invert the Hue value. To do this you must change Hue by 360-Hue and then convert back to RGB mode.