The only difference between camera captured photos and WhatsApp images is the EXIF Data.
You can read it out with
ALAssetRepresentation *representation = [asset defaultRepresentation];
NSDictionary *meta = [representation metadata];
or in Swift:
var representation = asset.defaultRepresentation()
var meta = representation.metadata()
This returns the following:
{TIFF}: {
DateTime = "2014:04:01 20:33:59";
Make = Apple;
Model = "iPhone 5";
Orientation = 3;
ResolutionUnit = 2;
Software = "7.1";
XResolution = 72;
YResolution = 72;
}, PixelWidth: 3264]
So you can check if Make is Apple, for WhatsApp images it is empty:
if([metaData["{TIFF}"]["Make"] isEqualToString: @"Apple"])
or in Swift:
if metaData["{TIFF}"]!["Make"] == "Apple"