So I am seemingly encountering some strange behavior when using NSString's -sizeWithFont family of method calls depending on whether or not I'm invoking it on the iPhone Simulator or an actual device.
Simply enough, when the receiver of the -sizeWithFont:constrainedToSize:lineBreakMode: method call is nil, the resulting CGSize passed back on the Simulator is {0, 0}. However, on the device, the return result is the same CGSize value that I specify in the method call as the constrainedToSize: parameter. See the following log statements:
Simulator:
someString: (null)
someStringSize: {0, 0}
Device:
someString: (null)
someStringSize: {185, 3.40282e+38}
The behavior on the Simulator is what I would expect. Not that this issue is difficult to circumvent, but 1) I'm a little confused why this family of functions would behave differently on the Simulator and an actual device, and 2) why does calling a method on a nil receiver return a particular, deterministic result?
Thanks for any pointers or insight you guys can provide!
EDIT: I suppose I should mention that I'm building against the 3.1 SDK.