2015-10-20 2 views
0

Я нахожусь в середине обновления моего приложения, которое было построено в ios 8 до ios9 с помощью xcode7/swift 2.0. Как и многие другие, мое приложение разбилось очень сильно. Основная концепция моего приложения - позволить пользователям загружать видео/изображения на определенное событие. Прямо сейчас, я имею сообщение об ошибке, говорящееУстаревшие методы в xcode7/swift 2.0

объект не найден для обновления (Код: 101, Версия: 1.9.0)

от синтаксического анализа. Сначала я подумал, что это была ошибка Парса, но я понял, что, возможно, сделал некоторые глупые ошибки, когда я обновлял коды. Если вы можете взглянуть на изменения, которые я сделал, и указать на ошибки, которые я сделал, это было бы очень полезно.

я изменил следующее:

var outputURL = NSURL.fileURLWithPath(NSTemporaryDirectory().stringByAppendingPathComponent("\(filename)").stringByAppendingString(".mp4")) 

в

var outputURL = NSURL(fileURLWithPath: NSTemporaryDirectory()).URLByAppendingPathComponent("\(filename).mp4") 

Я сделал это изменение, потому что stringByAppendingString осуждается в настоящее время.

Другие изменения я сделал это:

let filename = (outputFileUrl.absoluteString.stringByDeletingPathExtension.lastPathComponent ?? "video") + "-c" 

в

let filename = (outputFileUrl.URLByDeletingPathExtension?.lastPathComponent ?? "video") + "-c" 

Я уверен, что я правильно сделал с преобразовательных функций. Было бы признательно, если кто-нибудь может указать, что я сделал неправильно в этих двух изменениях.

ответ

0

Отличие первого примера:

  • Прежний синтаксис создает объект NSString
  • Новый синтаксис создает объект NSURL

Либо использовать URL, связанные с API, например, вместо от …contentsOfFile использовать …contentsOfURL или получить путь по URL-адресу от path

let outputURL = NSURL(fileURLWithPath: NSTemporaryDirectory()).URLByAppendingPathComponent("\(filename).mp4").path! 

Второй пример возвращает строку с процентными кодированными специальными символами в предыдущем синтаксисе и строку без процентной кодировки в новом синтаксисе. Вы можете добавить процентное кодирование.

Альтернативный метод сохранения старого синтаксиса заключается в том, чтобы отличить String от NSString, например.

let filename = (((outputFileUrl.absoluteString as NSString).stringByDeletingPathExtension as NSString).lastPathComponent ?? "video") + "-c" 

, но я рекомендую использовать связанные URL API

+0

Спасибо за помощь! – Kahsn

Смежные вопросы