我试图获取从Swift中的Library导入的图像的URL,以将其发送到Apple
Watch,transferFile(_:metadata)
但出现两个错误NSURL
。
这是我的代码:
func imagePickerController(picker: UIImagePickerController, didFinishPickingImage image: UIImage!, editingInfo: [NSObject : AnyObject]!)
{
imagePicked.image = image
let imageUrl = editingInfo[UIImagePickerControllerReferenceURL] as! NSURL
let imageName = imageUrl.path!.lastPathComponent
let documentDirectory = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true).first as String!
let localPath = documentDirectory.stringByAppendingPathComponent(imageName)
let image = editingInfo[UIImagePickerControllerOriginalImage]as! UIImage
let data = UIImagePNGRepresentation(image)
data!.writeToFile(localPath, atomically: true)
let photoURL = NSURL(fileURLWithPath: localPath)
self.dismissViewControllerAnimated(true, completion: nil);
}
我在 imageName和 localPath上遇到错误,因为它说:
“
lastPathComponent”不可用:在NSURL上使用lastPathComponent。’stringByAppendingPathComponent’不可用:在NSURL上使用URLByAppendingPathComponent。
但是我在Swift 2.0和Xcode 7中无法正确解决。
苹果改变的东西在他们NSString
和NSURL
图书馆在其最新版本(iOS版9),但这些方法都可以从iOS版4.您可以检查有关苹果论坛帖子的更多细节。
要修复此错误,您需要更改代码,例如:
func imagePickerController(picker: UIImagePickerController, didFinishPickingImage image: UIImage!, editingInfo: [NSObject : AnyObject]!)
{
let imageUrl = editingInfo[UIImagePickerControllerReferenceURL] as! NSURL
let imageName = imageUrl.lastPathComponent
let documentDirectory = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true).first as String!
let photoURL = NSURL(fileURLWithPath: documentDirectory)
let localPath = photoURL.URLByAppendingPathComponent(imageName!)
let image = editingInfo[UIImagePickerControllerOriginalImage]as! UIImage
let data = UIImagePNGRepresentation(image)
data!.writeToFile(localPath.absoluteString, atomically: true)
self.dismissViewControllerAnimated(true, completion: nil);
}
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any])
{
let imageUrl = info[UIImagePickerControllerReferenceURL] as! NSURL
let imageName = imageUrl.lastPathComponent
let documentDirectory = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first!
let photoURL = NSURL(fileURLWithPath: documentDirectory)
let localPath = photoURL.appendingPathComponent(imageName!)
let image = info[UIImagePickerControllerOriginalImage]as! UIImage
let data = UIImagePNGRepresentation(image)
do
{
try data?.write(to: localPath!, options: Data.WritingOptions.atomic)
}
catch
{
// Catch exception here and act accordingly
}
self.dismiss(animated: true, completion: nil);
}
参考:
问题内容: 我正在尝试为用户提供照片库中图像的选择。因此,我用于选择。但是在文件系统中获取其初始URL会带来一个问题(我需要)。 我的代码。 imageURL 有点神秘。它描述了资产URL,但没有描述文件系统中的一个。它看起来像:。 根据该逻辑 路径 是其中是所述图像的名称。 然后,我访问我的Documents文件夹并尝试在其中找到带有路径的文件: /Users/Eugene/Library/De
问题内容: 我正在尝试在iOS 8中针对SWIFT中的Objective-C 实现答案 我打电话给 这将导致“致命错误:在展开可选值时意外发现nil” 问题答案: 试试这个代码:
问题内容: 我想将预览层“流式传输”到我的服务器,但是,我只希望发送特定的帧。基本上,我想拍摄AVCaptureVideoPreviewLayer的快照,将其缩放到28 * 28,将其转换为强度数组,然后将其发送到我的python后端处理其余部分的套接字层。 这里的问题是AVCapturePhotoOutput的捕获功能异常缓慢。我不能重复调用该函数。更不用说它总是使相机的快门声哈哈。 另一个问题
问题内容: 我最近试图将代码从这里转换为Swift。但是,无论图像如何,我都会保持白色。这是我的代码: 提前致谢。 问题答案: iOS 9中的CoreImage:使用CIAreaAverage过滤器并传递要平均的整个图像的范围。 另外,它既可以在GPU上运行,也可以作为高度优化的CPU CIKernel运行,因此速度更快。
问题内容: 我有这个新的iOS 8 Swift项目,在它的一个视图控制器中,我必须设置图像。但是,我想在将图像发送到视图之前更改图像的对比度: 这是我的代码: 好吧,我只是获取图像,对其进行转换,然后将转换后的版本作为并将其设置回我的视图。 但是我只得到一个错误: 有人可以告诉我我在做什么错吗? 问题答案: 差不多了 迅捷2 Swift 3或更高版本
问题内容: 我想从获取文件名。我不想使用ALAssetLibrary,因为它在iOS 9中已弃用。我使用了以下代码,但对于每个文件,它始终将图像名称返回为“ Asset.jpg”。 问题答案: 我建议您使用Framework来获取图像的名称,下面是获取所选图像名称的代码