Convert CFIndex to NSUInteger?

2019-07-24 09:50发布

问题:

How do I convert typedef signed long CFIndex to typedef unsigned int NSUInteger?

Is it OK if I use a CFIndex as an argument of type NSUInteger. I haven't casted it, and the complier doesn't seem to mind. Does the compiler just do the conversion for me?

回答1:

You need to be very careful here, since CFIndex is signed and NSUInteger is unsigned. There are various routines that return a CFIndex -1. You need to check for that before using it as an NSUInteger.



回答2:

Yes, the compiler performs implicit type conversion.