Ios 有没有办法检查iPhone上是否有照片?

Ios 有没有办法检查iPhone上是否有照片?,ios,objective-c,iphone,Ios,Objective C,Iphone,我想知道是否有办法检查用户使用的iphone上是否有照片。图像中是否存在某种只有iphone才能使用的元数据?我试图找到一种方法来检查照片是否是在iphone 6上拍摄的,而只是在iphone 6上拍摄的。事实上,型号和制造商数据根本不存储在EXIF数据中,实际上它存储在TIFF数据中(至少在iphone上)。以下是如何检索该数据,特别是作为字符串检索模型,前提是TIFF数据存在: NSString *myPath = [[NSBundle mainBundle] pathForResource

我想知道是否有办法检查用户使用的iphone上是否有照片。图像中是否存在某种只有iphone才能使用的元数据?我试图找到一种方法来检查照片是否是在iphone 6上拍摄的,而只是在iphone 6上拍摄的。

事实上,型号和制造商数据根本不存储在EXIF数据中,实际上它存储在TIFF数据中(至少在iphone上)。以下是如何检索该数据,特别是作为字符串检索模型,前提是TIFF数据存在:

NSString *myPath = [[NSBundle mainBundle] pathForResource:@"IMG_0002" ofType:@"jpg"];
NSURL *myURL = [NSURL fileURLWithPath:myPath];
CGImageSourceRef sourceRef = CGImageSourceCreateWithURL((CFURLRef)myURL, NULL);

NSDictionary *metadata = (__bridge id)CGImageSourceCopyPropertiesAtIndex(sourceRef, 0, NULL);
NSDictionary *TIFFdata = [metadata objectForKey:(__bridge id)kCGImagePropertyTIFFDictionary];
NSString *model = [TIFFdata objectForKey:(__bridge id)kCGImagePropertyTIFFModel];
在我的5S上,型号是“iphone5s”,你很可能会认为它是iphone6上的“iphone6”


注意:如果您将图像作为UIImage,请不要通过执行
UIImageJPEG表示法
获取数据,您将丢失大量元数据,包括大部分TIFF。

No(就“该手机”而言),这将是对身份/跟踪问题的公然违反。如果图片中有任何其他数据,它将位于EXIF数据中,这可能不同,但可能主要是根据我怀疑的照片软件/iOS版本。@user2864740这不会违反身份,因为EXIF数据不会为拍摄图片的每个设备存储唯一的标识符。EXIF数据确实包含相机制造商和型号。@Milo这是“在iPhone上拍摄”和“用户正在使用的iPhone”(例如,没有嵌入神奇的UUID)而不是“在iPhone 6上拍摄”。@user2864740 OP在结尾明确指出“检查照片是否在iPhone 6上拍摄,而仅在iPhone 6上拍摄”。我想他指的是那种类型的电话。@Milo OP指定了两件事。我的评论是要提请大家注意这种模糊性,同时提供一个有用的研究开端。