如何在Swift 3.0中检查""的条件

7 浏览
0 Comments

如何在Swift 3.0中检查""的条件

我想检查maxprice是否等于"",如果是的话,maxprice将变为maxprice = 0。

我的Json数据:

price = ({

maxprice = "";

minprice = "";

});

代码:

var Arr = NSArray()

Arr = result.value(forKey: "price") as! NSArray

let max = Arr.value(forKey: "maxprice")

if max == nil {

self.MaxValue = 0

self.MinValue = 0

}

else {

let maxval = (Arr.object(at: 0) as AnyObject).value(forKey: "maxprice") as! NSNumber

let min = (Arr.object(at: 0) as AnyObject).value(forKey: "minprice") as! NSNumber

self.MaxValue = maxval

self.MinValue = min

}

错误:无法将类型为'NSNull' (0x102148918)的值转换为'NSNumber' (0x10311c4a8)。

0
0 Comments

使用is可以检查null是否存在:

if Arr.value(forKey: "maxprice") is NSNull {

// 在此处处理null JSON值

}

这是Objective-C风格吗?我认为在Swift中,你应该使用if Blah == nil { ... },或者更好的做法是同时解包可选值,使用if let unboxed = Blah { // 使用unboxed }

这是在Swift中检查值是否为null的方法。

0
0 Comments

在Swift 3.0中,我们可以使用"?? "来检查""的条件,并进行相应的操作。这个操作也被称为"rescue operation"。以下是使用"?? "进行条件检查的简短代码:

let max = Arr.value(forKey: "maxprice") as? NSNumber ?? 0

这段代码的作用是,将Arr中的"maxprice"值作为NSNumber类型进行检查,如果该值为"",则将0赋给max变量。这样就可以避免出现空值的情况。

这段代码的原理是,首先使用value(forKey:)方法获取Arr中"maxprice"的值,并将其转换为NSNumber类型。然后,使用as?进行可选绑定,将其尝试转换为NSNumber类型。如果转换成功,则将转换后的值赋给max变量;如果转换失败(即值为""),则使用"?? "操作符将0赋给max变量。

通过这种方式,我们可以在Swift 3.0中轻松地检查""的条件,并进行相应的处理。这种方法简洁高效,可以有效地处理可能出现的空值情况。

0
0 Comments

在Swift 3.0中,如果我们想要检查一个条件是否为"",可以使用optional bindings来实现。不需要使用Objective-C风格的NSArray、valueForKey和NSNumber。

我们需要检查以下条件:

- 键"price"的值是否是一个Swift数组,其中包含字典[[String:Double]]。使用具体的类型可以避免额外的NSNull检查。

- 数组是否为空。

假设minprice和maxprice应该是Double类型的值,如果不是,请用Int类型替换Double类型。

下面是解决问题的代码:

if let priceArray = jsonDict["price"] as? [[String:Double]],

let price = priceArray.first {

minValue = price["minprice"] ?? 0.0

maxValue = price["maxprice"] ?? 0.0

} else {

minValue = 0.0

maxValue = 0.0

}

以上代码中,我们首先使用optional bindings将jsonDict["price"]转换为[[String:Double]]类型的priceArray。然后,我们使用priceArray.first获取第一个字典,将其赋值给price。

接下来,我们使用可选的字典键"minprice"和"maxprice"来获取对应的值。如果这两个键不存在或者对应的值是"",我们使用??运算符来提供一个默认值0.0。

如果priceArray不存在或者为空,我们将minValue和maxValue都设置为0.0。

这样,我们就可以使用optional bindings和条件语句来检查Swift中的""条件了。

0