NSURL URLWithString return nil 问题解决

本文介绍了一个关于将包含中文字符的NSString转换为NSURL的问题及解决方案。通过使用stringByAddingPercentEscapesUsingEncoding方法对字符串进行编码,成功解决了NSURL返回nil的问题。
NSString 生成不了NSURL,return为nil,原来是中文字符惹的祸

   

NSString *routeString = [NSString stringWithFormat:@"baidumap://map/marker?location=%f,%f&title=%@&src=yourCompanyName|yourAppName", dLat, dLng, data.houseName];

//加上这句才行
NSString* webStringURL = [routeString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

NSURL *routeURL = [NSURL URLWithString:webStringURL];
[[UIApplication sharedApplication] openURL:routeURL];



参考链接:
http://stackoverflow.com/questions/1981390/urlwithstring-returns-nil
- (void)savePictureToLoacal:(UIImage *)image shareType:(ShareType)shareType{ PHAuthorizationStatus status = [PHPhotoLibrary authorizationStatus]; if (status == PHAuthorizationStatusRestricted || status == PHAuthorizationStatusDenied){ // 无权限 做一个友好的提示 UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"请您设置允许该应用访问您的相机\n设置>隐私>相机" message:nil preferredStyle:UIAlertControllerStyleAlert]; [alertController addAction:[UIAlertAction actionWithTitle:ATLocalizedStr(@"确定") style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { [[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString] options:@{} completionHandler:nil]; }]]; [[KDUserInterfaceTool currenrtopViewController] presentViewController:alertController animated:YES completion:nil]; return; } WS(weakSelf) [[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{ [PHAssetChangeRequest creationRequestForAssetFromImage:image]; } completionHandler:^(BOOL success, NSError * _Nullable error) { if (success) { dispatch_async(dispatch_get_main_queue(), ^{ [ATHUD showSuccessWithStatus:@"保存图片成功!"]; if(shareType != ShareTypeToSavePictureLocal){ [weakSelf openShareProgram:shareType]; } }); }else { [[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString] options:@{} completionHandler:nil]; } }]; }的[PHAssetChangeRequest creationRequestForAssetFromImage:image];出现 vImage __ERROR_Buffer_Not_Writeable_By_vImage__CheckBacktrace + 20 1 vImage _vImageDebug_CheckDestBuffer + 376 2 vImage _vImageConvert_AnyToAny + 1252 3 ImageIO iio_vImageConvert_AnyToAny(vImageConverter*, vImage_Buffer const*, vImage_Buffer const*, void*, unsigned int) + 220 4 ImageIO IIOColorConverter::colorConvert(vImage_Buffer*, vImage_Buffer*) + 28 5 ImageIO IIOImageDestination::createPixelDataProviderConforming(CGImage*, long, CGColor*, CGImagePluginWriteModes, IIODictionary*) + 4816 6 ImageIO IIOImageDestination::addImage(CGImage*, IIODictionary*, bool) + 3312 7 ImageIO _CGImageDestinationAddImage + 492 8 PhotoLibraryServices _imageDataFromImageWithFormatAndProperties + 112 9 PhotoLibraryServices _imageDataFromImageRef + 588 10 Photos _ImageDataFromImageAsScreenshot + 176 11 Photos +[PHAssetCreationRequest creationRequestForAssetFromImage:] + 28 12 shandongMarket __53-[ATScrollViewImgZoom savePictureToLoacal:shareType:]_block_invoke_2 (ATScrollViewImgZoom.m:231) 13 Photos ___51-[PHPhotoLibrary performChanges:completionHandler:]_block_invoke + 44 14 AssetsLibraryServices ___pl_dispatch_async_block_invoke + 36 15 libdispatch.dylib __dispatch_call_block_and_release + 24 16 libdispatch.dylib __dispatch_client_callout + 16 17 libdispatch.dylib __dispatch_lane_serial_drain$VARIANT$mp + 608 18 libdispatch.dylib __dispatch_lane_invoke$VARIANT$mp + 416 19 libdispatch.dylib __dispatch_workloop_worker_thread + 588该怎么优化
最新发布
08-08
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值