[英]Deprecated methods in xcode7/swift 2.0
我正在使用xcode7 / swift 2.0将内置于ios 8的应用程序更新为ios9。 像许多其他人一样,我的应用程序崩溃非常严重。 我的应用程序的基本概念是允许用户将视频/图像上传到特定事件。 现在,我收到一条错误消息说
找不到要更新的对象(代码:101,版本:1.9.0)
从解析。 我最初以为是Parse的错误,但发现我在更新代码时可能犯了一些愚蠢的错误。 如果您可以查看我所做的更改并指出我所做的错误,那将非常有帮助。
我更改了以下内容:
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"
我很确定我对转换函数的处理正确。 如果有人能指出我在这两个更改中做错了什么,将不胜感激。
第一个示例的区别是:
例如,使用URL相关的API代替…contentsOfFile
使用…contentsOfURL
或从path
属性获取URL的path
let outputURL = NSURL(fileURLWithPath: NSTemporaryDirectory()).URLByAppendingPathComponent("\(filename).mp4").path!
第二个示例返回一个字符串,该字符串在以前的语法中具有百分比编码的特殊字符,而在新语法中返回了一个不具有百分比编码的字符串。 您可以添加百分比编码。
保留旧语法的另一种方法是将String
NSString
为NSString
例如
let filename = (((outputFileUrl.absoluteString as NSString).stringByDeletingPathExtension as NSString).lastPathComponent ?? "video") + "-c"
但我建议使用与网址相关的API
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.