You might find this useful:
NSString *longName = @"Subrahmanyan Chandrasekhar";
CGSize size = [longName sizeWithFont:label.font];
That gives the size of rectangle that just fits the given font with the given text. What you want is to solve for a different variable: given the rectangle size and text, find the maximum font size that fits. You could do it by a trial and error process in your code, e.g. binary search.
That doesn't really help you if you're setting the frame size in Interface Builder, though. Best suggestion there, uncheck "Adjust to fit", type the longest text you expect to see in the box, and increase the font size until it looks broken.
Yes, it's different for OSX. Apparently sizeWithFont:
doesn't exist on OSX.