我的应用程序不断崩溃并显示以下消息:
*由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[NSConcreteMutableData base64EncodedStringWithOptions:]:无法识别的选择器发送到实例 0x776e920”
这是代码的一部分。任何帮助将不胜感激:
-(void) imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{
// Saving the image in the uiimage "myImage".
UIImage *myImage = [info objectForKey:UIImagePickerControllerOriginalImage];
NSString *imageString = [self encodeToBase64String:myImage];
[self dismissViewControllerAnimated:YES completion:NULL];
}
- (NSString *)encodeToBase64String:(UIImage *)image{
NSString * test = [UIImagePNGRepresentation(image) base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength];
return test;
}
我已经检查过,UIImage 中有一个图像。谢谢。
base64EncodedStringWithOptions:
从 iOS 7 和 OS X 10.9 开始可用。
“无法识别的选择器”异常可能意味着您在
早期的 iOS 版本,该方法不可用。
有可用的第 3 方库提供类似的方法并且可以使用
相反,如果您必须支持 iOS 6 或 5(例如https://github.com/nicklockwood/Base64 https://github.com/nicklockwood/Base64).
The NSData
文档还指出,有一个base64Encoding
方法
(及其对应的initWithBase64Encoding:
)
虽然此方法仅在 iOS 7 中公开引入,但它已经
自 iOS 4 起就存在;如果您的应用程序需要,您可以使用它
针对 iOS 7 之前的操作系统。此方法的行为类似于
base64EncodedStringWithOptions:,但忽略所有未知字符。
(看来iOS有一个NSData
到Base64转换了很长时间,但是它
从未公开记录过!)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)