There is nothing wrong with the code you posted. I tried it in the simulator and on the device and it works. Apple's documentation for the method metadatareads:
Returns nil if the view is one that the system cannot interpret.
Thus, this most likely means that the image you have selected either does not have metadata, or the image is in a form that the library does not recognize.
metadataDict , , , .
metadataDict = [[representation metadata] retain];
, __block.
__block NSDictionary *metaDataDict;