xcode7/swift 2.0中不推荐的方法 我正使用XCODE7/SWIFT 2更新iOS 8内置到iOS9的应用程序。和许多其他人一样,我的应用程序崩溃得很厉害。我的应用程序的基本概念是允许用户将视频/图像上传到某个活动。现在,我收到一条错误消息,说
找不到要更新的对象(代码:101,版本:1.9.0) 从解析。起初我以为这是Parse的错误,但后来我发现我可能在更新代码时犯了一些愚蠢的错误。如果你能看看我所做的更改并指出我所犯的错误,那将非常有帮助 我更改了以下内容:xcode7/swift 2.0中不推荐的方法 我正使用XCODE7/SWIFT 2更新iOS 8内置到iOS9的应用程序。和许多其他人一样,我的应用程序崩溃得很厉害。我的应用程序的基本概念是允许用户将视频/图像上传到某个活动。现在,我收到一条错误消息,说,ios,mobile,parse-platform,swift2,xcode7,Ios,Mobile,Parse Platform,Swift2,Xcode7,找不到要更新的对象(代码:101,版本:1.9.0) 从解析。起初我以为这是Parse的错误,但后来我发现我可能在更新代码时犯了一些愚蠢的错误。如果你能看看我所做的更改并指出我所犯的错误,那将非常有帮助 我更改了以下内容: var outputURL = NSURL.fileURLWithPath(NSTemporaryDirectory().stringByAppendingPathComponent("\(filename)").stringByAppendingString(".mp4")
var outputURL = NSURL.fileURLWithPath(NSTemporaryDirectory().stringByAppendingPathComponent("\(filename)").stringByAppendingString(".mp4"))
到
我之所以做此更改,是因为stringByAppendingString现在已不推荐使用
我所做的其他改变是:
let filename = (outputFileUrl.absoluteString.stringByDeletingPathExtension.lastPathComponent ?? "video") + "-c"
到
我确信我在转换函数方面做得很好。如果有人能指出我在这两个更改中的错误,我们将不胜感激。第一个示例的区别是:
- 前一种语法创建NSString对象
- 新语法创建一个NSURL对象
…contentsOfFile
使用…contentsOfURL
或从路径
属性获取URL的路径
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
let outputURL = NSURL(fileURLWithPath: NSTemporaryDirectory()).URLByAppendingPathComponent("\(filename).mp4").path!
let filename = (((outputFileUrl.absoluteString as NSString).stringByDeletingPathExtension as NSString).lastPathComponent ?? "video") + "-c"