Swift可选字符串拆分成数组问题

问题描述

我有一个功能,它可以从我的控制器中获取第二个信息,并从网络服务中获取introInterval。但是我的代码不会拆分来自API的字符串。但是,如果我输入虚拟数据,它就可以工作。我不知道为什么。问题出在哪儿 ?它们都使用相同的字符串。我的目标是使用测试变量来捕获相同的数据。您可以在打印行中看到它们的输出

func getCurrentPlayerTimeAndIntroDuration(second: String,introInterval: String?) {
    if let introInterval = introInterval {

        print(introInterval) //output: "01:38 - 5:00"

        let test = "01:38 - 5:00".trimmingCharacters(in: .whitespacesAndNewlines).components(separatedBy: "-")
        let introIntervalArray = introInterval.trimmingCharacters(in: .whitespacesAndNewlines).components(separatedBy: "-")
        
        print("test \(test)") //output: ["01:38","5:00"] correct
        print("introIntervalArray \(introIntervalArray)") //output introIntervalArray ["01:38–02:13"] wrong

    }
}

解决方法

我相信您使用错误的字符来分隔字符串。如果比较示例-中的//output introIntervalArray ["01:38–02:13"] wrong (非ASCII)字符,您会发现与用于拆分字符串-的字符不同( ASCII)。

此代码:

let test = "01:38–02:13".trimmingCharacters(in: .whitespacesAndNewlines).components(separatedBy: "–")

输出:

["01:38","02:13"]