无法将objective-c行转换为swift

时间:2014-09-08 19:14:58

标签: objective-c swift

我不确定如何将此行Objective-c转换为swift

  NSArray *pathComponents = [NSArray arrayWithObjects:
                           [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject],
                           @"MyAudioMemo.m4a",
                           nil];

1 个答案:

答案 0 :(得分:4)

非常简单:

if let docsDir = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true).last as? String {
    let pathComponents = NSArray(objects: docsDir, "MyAudioMemo.m4a")
    ...
}

您可以将它们组合成一行,但是您必须隐式解包由last计算属性返回的可选项:

var last: T? { get }

使用if let可选绑定更安全,也是一个很好的习惯。