use*_*509 -4 iphone if-statement objective-c uiimagepickercontroller ios
我有一个照片应用程序,让用户可以拍摄照片或视频,然后如果他们点击"使用照片"或"使用视频"按钮(取决于他们捕获的媒体类型),它会将照片或视频保存到相机胶卷.
这一切都适合拍照,我最初只设置应用程序拍照,但现在我添加了视频,我遇到了问题.我在我的应用程序中设置了一个if语句,用于kUTTypeimage或kUTTypeMovie,但它不喜欢我使用"||" 在我的if语句中用于"或".
它给出了"不兼容的整数到指针转换发送'int'到'NSString*'类型的参数的错误
我不明白为什么它会给我这个错误以及它为什么不让我使用|| 在我的if语句中用于"或".
这是我的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];
}
Run Code Online (Sandbox Code Playgroud)
||是一个逻辑或运算符,这意味着它与布尔数据进行比较.
[stringOne isEqualToString:stringTwo]将返回一个布尔值,然后您可以将其与另一个布尔值进行比较||,但是您不能使用它一次进行两次比较,或者比较其他类型的布尔值BOOL.
你应该遵循@ wuiii的回答所描述的逻辑:
if ([mediaType isEqualToString:(NSString *)kUTTypeImage] || [mediaType isEqualToString:(NSString *)kUTTypeMovie]) {
UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];
UIImageWriteToSavedPhotosAlbum(image, nil, nil, nil);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
175 次 |
| 最近记录: |