Я пытаюсь преобразовать старое быстрое приложение в 2.0 и, похоже, не может пройти мимо этого фрагмента кода в этой функции:Swift 2.0 - «Невозможно преобразовать возвращаемое выражение типа« NSURL », чтобы вернуть тип« String »
func documentsPathForFileName(name: String) -> String {
let paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true);
let path = paths[0] ;
let fullPath = NSURL(fileURLWithPath: NSTemporaryDirectory()).URLByAppendingPathComponent(name)
return fullPath
}
на линии «пусть FULLPATH» Я получаю сообщение об ошибке «не удается преобразовать возвращаемое выражение типа„NSURL“для возвращения типа" Строка»
Вот полный .swift файл:
import UIKit
class CardViewController: UIViewController, UINavigationControllerDelegate, UIImagePickerControllerDelegate, UIScrollViewDelegate {
@IBOutlet weak var SecondCaptureButton: UIBarButtonItem!
@IBOutlet weak var imageView: UIImageView!
@IBOutlet weak var OpenButton: UIBarButtonItem!
@IBOutlet weak var MainCaptureButton: UIButton!
var imagePicker: UIImagePickerController!
/* func supportedInterfaceOrientations() -> Int {
return Int(UIInterfaceOrientationMask.Portrait.rawValue)
} */
override func shouldAutorotate() -> Bool {
return false
}
override func viewDidLoad() {
super.viewDidLoad()
OpenButton.target = self.revealViewController()
OpenButton.action = Selector("revealToggle:")
self.view.addGestureRecognizer(self.revealViewController().panGestureRecognizer())
MainCaptureButton.layer.borderColor = UIColor.blackColor().CGColor
MainCaptureButton.layer.cornerRadius = 10
MainCaptureButton.layer.borderWidth = 1
MainCaptureButton.titleLabel?.textAlignment = NSTextAlignment.Center
let possibleOldImagePath = NSUserDefaults.standardUserDefaults().objectForKey("path") as! String?
if let oldImagePath = possibleOldImagePath {
let oldFullPath = self.documentsPathForFileName(oldImagePath)
let oldImageData = NSData(contentsOfFile: oldFullPath)
// here is your saved image:
if let oldImage = UIImage(data: oldImageData!) {
imageView.image = oldImage
print("Old Photo Retrieved")
self.view.bringSubviewToFront(imageView)
}
}
}
func documentsPathForFileName(name: String) -> String {
let paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true);
let path = paths[0] ;
let fullPath = NSURL(fileURLWithPath: NSTemporaryDirectory()).URLByAppendingPathComponent(name)
return fullPath
}
@IBAction func TakePhoto(sender: AnyObject) {
imagePicker = UIImagePickerController()
imagePicker.delegate = self
imagePicker.sourceType = .Camera
presentViewController(imagePicker, animated: true, completion: nil)
}
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
imagePicker.dismissViewControllerAnimated(true, completion: nil)
self.view.sendSubviewToBack(MainCaptureButton)
imageView.image = info[UIImagePickerControllerOriginalImage] as? UIImage
let imageData = UIImageJPEGRepresentation(imageView.image!, 1)
let relativePath = "image_\(NSDate.timeIntervalSinceReferenceDate()).jpg"
let path = self.documentsPathForFileName(relativePath)
imageData!.writeToFile(path, atomically: true)
NSUserDefaults.standardUserDefaults().setObject(relativePath, forKey: "path")
NSUserDefaults.standardUserDefaults().synchronize()
print("New Photo Saved")
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
}
NSURL (...) возвращает объект NSURL, а не String – user3441734