You’re right. I found this very confusing at first, but I think I can understand why. The docs say the
rect parameter is “A rectangle specified in the local coordinate system (bounds) of the receiver.”
So I think the
convert method is subtracting
bounds.origin from the origin of the rectangle you pass in
rect. If you pass
rect then it doesn’t matter what
bounds.origin is, it will be cancelled out!