如何检查使用 alamofire 创建的 class 模型在 swift 中是否为 nil?
How to check if a class model created using alamofire is nil in swift?
我使用 HTTP 网络库 Alamofire 创建了 class 模型,其中包含以下数据:
class MyData: NSObject {
var name = ""
var params = PublicData()
func initUserWithInfo(userInfo: [String : AnyObject]) {
if let name = userInfo["name"] as? String {
self.name = name
}
if let params = userInfo["params"] as? ParamData {
self.params = params
}
}
}
class PublicData: NSObject {
var city = ""
func initUserWithInfo(userInfo: [String : AnyObject]) {
if let city = userInfo["city"] as? String {
self.city = city
}
}
}
现在,当我尝试检查 params
是否为 nil
时,它给出以下警告消息:
let data = MyData()
if data.params != nil {
}
Comparing non-optional value of type 'params' to nil always returns true
或
if data.params {
}
'params' is not convertible to 'Bool'
或
if data.rams as Bool {
}
Cannot convert value of type 'ImpressionObject' to type 'Bool' in
coercion
如何检查嵌套模型 class 是否为 nil
?
您收到此错误是因为您正在初始化 params 的值并且以后不能为 nil。如果你想让它成为可选的,你应该尝试下面的代码
class MyData: NSObject {
var name = ""
/// making variable optional
var params: PublicData?
func initUserWithInfo(userInfo: [String : AnyObject]) {
if let name = userInfo["name"] as? String {
self.name = name
}
if let params = userInfo["params"] as? ParamData {
self.params = params
}
}
}
之后你应该如下使用它
let data = MyData()
if let parameters = data.params {
}
或者你可以写一些更小的东西:
class MyData: NSObject {
var name = ""
/// making variable optional
var params: PublicData?
func initUserWithInfo(userInfo: [String : AnyObject]) {
guard let name = userInfo["name"] as? String, let param = userInfo["params"] as? ParamData else { return }
self.name = name
self.params = params
}
}
我使用 HTTP 网络库 Alamofire 创建了 class 模型,其中包含以下数据:
class MyData: NSObject {
var name = ""
var params = PublicData()
func initUserWithInfo(userInfo: [String : AnyObject]) {
if let name = userInfo["name"] as? String {
self.name = name
}
if let params = userInfo["params"] as? ParamData {
self.params = params
}
}
}
class PublicData: NSObject {
var city = ""
func initUserWithInfo(userInfo: [String : AnyObject]) {
if let city = userInfo["city"] as? String {
self.city = city
}
}
}
现在,当我尝试检查 params
是否为 nil
时,它给出以下警告消息:
let data = MyData()
if data.params != nil {
}
Comparing non-optional value of type 'params' to nil always returns true
或
if data.params {
}
'params' is not convertible to 'Bool'
或
if data.rams as Bool {
}
Cannot convert value of type 'ImpressionObject' to type 'Bool' in coercion
如何检查嵌套模型 class 是否为 nil
?
您收到此错误是因为您正在初始化 params 的值并且以后不能为 nil。如果你想让它成为可选的,你应该尝试下面的代码
class MyData: NSObject {
var name = ""
/// making variable optional
var params: PublicData?
func initUserWithInfo(userInfo: [String : AnyObject]) {
if let name = userInfo["name"] as? String {
self.name = name
}
if let params = userInfo["params"] as? ParamData {
self.params = params
}
}
}
之后你应该如下使用它
let data = MyData()
if let parameters = data.params {
}
或者你可以写一些更小的东西:
class MyData: NSObject {
var name = ""
/// making variable optional
var params: PublicData?
func initUserWithInfo(userInfo: [String : AnyObject]) {
guard let name = userInfo["name"] as? String, let param = userInfo["params"] as? ParamData else { return }
self.name = name
self.params = params
}
}