An NSImage instance can actually contain more than one representation of an image (which are instances of NSImageRep), and may have different sizes. You should understand "size" to mean size in drawing unit points, not pixel dimensions.
If you want the pixel dimensions, get an NSImageRep at the size you are interested in with -bestRepresentationForRect:context:hints:, then call -pixelsHigh and -pixelsWide.
The PNG format may contain fields that describe the actual size of the image, and it would appear NSImage is honoring that, and perhaps UIImage is not.
You can inspect your image files (png's) using the "sips" command line tool (type "man sips" for more info). It has options to read and manipulate both the pixel dimensions and DPI of a wide variety of image formats.