I only have an old .psd file that does not have a clipping path. But it has layers.
This quick bit of sample code uses Photoshop image properties. kCGImageProperty8BIMDictionary
NSURL *imageFileURL = [NSURL fileURLWithPath:@"/users/username/foo.psd"]; CGImageSourceRef imageSource = CGImageSourceCreateWithURL((__bridge CFURLRef)imageFileURL, NULL); NSDictionary *properties = (__bridge_transfer NSDictionary *)CGImageSourceCopyPropertiesAtIndex(imageSource, 0, NULL); NSDictionary *bim = properties[(__bridge id)kCGImageProperty8BIMDictionary]; NSLog(@"bim %@",bim); CFRelease(imageSource);
In my image, I have several image layers:

NSLog from the above code returns
imageRead [11220: 452087] bim {LayerNames = ("Level 0", "Layer 5", "Layer 6", "Level 4", "Level 3", "Layer 2", "Level 1"); Version = 1; }
If I wanted to know all the keys that I could use:
id allKeys = [bim allKeys]; NSLog(@"allKeys %@",allKeys);
And we get:
imageRead [11531: 463848] allKeys (Version, LayerNames)
Then I could use:
id LayerNames = [bim objectForKey:@"LayerNames"]; NSLog(@"LayerNames %@",LayerNames);
To obtain:
imageRead [11563: 465657] LayerNames ("Level 0", "Layer 5", "Layer 6", "Level 4", "Level 3", "Layer 2", "Layer 1")
Or
valueForKey:, allValues
I canβt check if the clipping path will return unfortunately