繁体   English   中英

xcode7 / swift 2.0中不推荐使用的方法

[英]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"

我很确定我对转换函数的处理正确。 如果有人能指出我在这两个更改中做错了什么,将不胜感激。

第一个示例的区别是:

  • 前一种语法创建一个NSString对象
  • 新语法创建一个NSURL对象

例如,使用URL相关的API代替…contentsOfFile使用…contentsOfURL或从path属性获取URL的path

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

第二个示例返回一个字符串,该字符串在以前的语法中具有百分比编码的特殊字符,而在新语法中返回了一个不具有百分比编码的字符串。 您可以添加百分比编码。

保留旧语法的另一种方法是将String NSStringNSString例如

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

但我建议使用与网址相关的API

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM