Ios 如何从swift 3中的子字符串中获取整数中的数字?

Ios 如何从swift 3中的子字符串中获取整数中的数字?,ios,string,swift3,Ios,String,Swift3,这里有一个字符串,类似于“{\'label\':\'57-175\',\'stock\':0}”其中,我需要将57和175作为整数,并且需要与数组数进行比较,但在这里,从字符串截断后,我无法以整数的形式获取整数,我尝试获取整数,它返回nil,如果我尝试获取字符串,它返回可选(57)或可选(175)对于数字和提到的数字都需要与数组中的整数进行比较,下面是我尝试过的代码。有人能帮我解决这个问题吗 用于(self.detailModel?.extensionAttribute?.productStoc

这里有一个字符串,类似于
“{\'label\':\'57-175\',\'stock\':0}”
其中,我需要将
57
175
作为整数,并且需要与数组数进行比较,但在这里,从字符串截断后,我无法以整数的形式获取整数,我尝试获取整数,它返回nil,如果我尝试获取字符串,它返回可选(57)或可选(175)对于数字和提到的数字都需要与数组中的整数进行比较,下面是我尝试过的代码。有人能帮我解决这个问题吗

用于(self.detailModel?.extensionAttribute?.productStock)中的项目!{
让开始=item.index(item.startIndex,抵销比:10)
打印(开始)
让结束=item.index(item.endIndex,抵消者:-12)
让范围=开始..快速肮脏方式:

let jsonData = jsonString.data(using: .utf8)!
let jsonDictionary = try JSONSerialization.jsonObject(with: jsonData, options: []) as! [String: Any]
let labelString = jsonDictionary["label"] as! String
let labelNumberArray = labelString.components(separatedBy: "-").map({ Int($0) })
let number1 = labelNumberArray[0]!
let number2 = labelNumberArray[1]!
我建议使用guard或if语句,而不是像上面的代码那样强制展开所有内容:

guard let jsonData = jsonString.data(using: .utf8),
    let jsonDictionary = try JSONSerialization.jsonObject(with: jsonData, options: []) as? [String: Any],
    let stock = jsonDictionary["stock"] as? NSNumber,
    let labelString = jsonDictionary["label"] as? String else {
    //return or throw expection
}

let labelNumberArray = labelString.components(separatedBy: "-").flatMap({ Int($0) })

guard labelNumberArray.count == 2 else {
    //return or throw expection
}

let labelNumber1 = labelNumberArray[0]
let labelNumber2 = labelNumberArray[1]
let stockNumber = stock.intValue

这就是JSON。绕过所有优秀开发人员关于展开的规则,您应该这样做:
let jsonStr=“{\'label\”:\'57-175\,\'stock\”:0};let dict=try!JSONSerialization.jsonObject(with:jsonStr.data(use:.utf8)!选项:[])as![String:Any let labelValue=dict[“label”]as!String;let values:[String]=labelValue.components(以“-”分隔);让int57=Int(值[0]);让int175=Int(值[1]);让intScore=dict[“股票”]
而不是所有的
索引(u,offsetBy:)
no@Larme我在一个数组中得到一组字符串,如上所述,为此我还需要做同样的事情?这个数组的子url是你收到的JSON,所以将其解析为JSON。不要试图手动解析字符串化为“range of”、“replace”、“cut/slice”的JSON。将其视为一个对象(在你的例子中是Dict).根据您提供的URL,它是JSON内部的JSON字符串。将其当作JSON使用,我提供了示例。