Ios ||(或)在包含两个可能的NSString对象的IF语句中不起作用

Ios ||(或)在包含两个可能的NSString对象的IF语句中不起作用,ios,iphone,objective-c,if-statement,uiimagepickercontroller,Ios,Iphone,Objective C,If Statement,Uiimagepickercontroller,我有一个照片应用程序,允许用户拍摄照片或视频,然后,如果用户点击“使用照片”或“使用视频”按钮,根据他们拍摄的媒体类型,它会将照片或视频保存到相机卷中 这一切都适用于拍照,我最初只设置应用程序拍照,但现在我添加了视频,我有问题。我在应用程序中设置了一个if语句,用于kUTTypeimage或kUTTypeMovie,但它不喜欢我在if语句中使用| | for或 它给出了不兼容的整数到指针转换错误,将“int”发送到“NSString*”类型的参数 我不明白为什么它会给我这个错误,为什么它不允许我

我有一个照片应用程序,允许用户拍摄照片或视频,然后,如果用户点击“使用照片”或“使用视频”按钮,根据他们拍摄的媒体类型,它会将照片或视频保存到相机卷中

这一切都适用于拍照,我最初只设置应用程序拍照,但现在我添加了视频,我有问题。我在应用程序中设置了一个if语句,用于kUTTypeimage或kUTTypeMovie,但它不喜欢我在if语句中使用| | for或

它给出了不兼容的整数到指针转换错误,将“int”发送到“NSString*”类型的参数

我不明白为什么它会给我这个错误,为什么它不允许我在if语句中使用| | for或

以下是我的ViewController.m文件中的代码块:

- (void)imagePickerController:pickerController didFinishPickingMediaWithInfo:(NSDictionary     *)info
{

NSString *mediaType = [info objectForKey:UIImagePickerControllerMediaType];

if ([mediaType isEqualToString:(NSString *)kUTTypeImage || (NSString *)kUTTypeMovie])
{
    UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];

    UIImageWriteToSavedPhotosAlbum(image,nil,nil,nil);
}

[pickerController dismissModalViewControllerAnimated:YES];

}
使用

你不能像这样做:

if ([mediaType isEqualToString:(NSString *)kUTTypeImage || (NSString *)kUTTypeMovie])
改为:

if ([mediaType isEqualToString:(NSString *)kUTTypeImage] || [mediaType isEqualToString:(NSString *)kUTTypeMovie])
您在这里所做的是:

if (5 == (5 || 8))
||是逻辑或运算符,这意味着它与布尔数据进行比较。 [stringOne isEqualToString:stringTwo]将返回一个布尔值,然后您可以使用| |与另一个布尔值进行比较,但不能使用它同时进行两次比较,也不能比较BOOL以外的类型

您应该遵循@wuiii答案中描述的逻辑:

if ([mediaType isEqualToString:(NSString *)kUTTypeImage] || [mediaType isEqualToString:(NSString *)kUTTypeMovie]) {
  UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];
  UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil);
}
if ([mediaType isEqualToString:(NSString *)kUTTypeImage] || [mediaType isEqualToString:(NSString *)kUTTypeMovie]) {
  UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];
  UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil);
}