objective-c - 无法将 objective-c 行转换为 swift

标签 objective-c swift

<分区>

我不确定如何将这行 objective-c 转换为 swift

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

最佳答案

非常简单:

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

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

var 最后:T? { 获取 }

使用 if let 可选绑定(bind)更安全,也是养成的好习惯。

关于objective-c - 无法将 objective-c 行转换为 swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25731494/

相关文章:

iphone - iPhone编程中如何通过Exception Handling处理SIGKILL、SIGABRT、Signal-0异常

iphone - 如何在 ipad/iphone 上阅读 pdf?

iphone - 我可以对核心数据模型对象使用自定义初始值设定项吗?

swift - 将容器与页面 View Controller 一起使用

swift - 在 Xcode UI Test 中定位没有辅助功能 ID 的元素

ios - 如何使 UICollectionViewFlowLayout 留在 UICollectionView 中

ios - iOS如何在不子类化的情况下将自定义代码添加到类方法中?

ios - 私有(private) API iOS iCloud 锁定 + 查找我的 iPhone 状态和唯一标识设备

ios - 如何在动态 TableView 内容中添加静态数据。并进行计算

ios - 在 Alamofire 4.0 中使用自定义响应发出请求