gpt4 book ai didi

swift - NSNull 转换为具有 NSDate 类型属性的 Struct

转载 作者:行者123 更新时间:2023-11-30 13:57:03 30 4
gpt4 key购买 nike

我有一个来自服务器的对象,它被 Swift 2.1 识别为 NSDate 或 NSNull。我想将其放入具有 NSDate 类型属性的结构中。那可能吗?如果不是,我以后使用它时应该如何处理它以保证类型安全?

    struct Data {
var completedAt: [NSDate]
var name: [String]
var gender: [Bool]
}

但有时completedAt来自服务器作为NSNull:

completedAt = "<null>";

非常感谢任何帮助,谢谢。

最佳答案

根据我对问题中文本的解释,您并不是想将变量声明为数组。

这就是我处理牧师的方式,我认为它工作得非常巧妙。日期格式化程序可能不会在构造函数的每次迭代中启动。如果您不定期使用日期,您可能希望保持厌恶,直到需要解析日期为止,或者您可以拥有一个仅实例化一次的静态日期格式化程序实用程序。

struct Data {
var completedAt: NSDate?
var name: String
var gender: Bool

init?(dictionary: [String:AnyObject]) {
//Guessing that you want some of the values non optional...
guard let name = dictionary["name"] as? String,
let gender = dictionary["gender"] as? String
else {
return nil
}

self.name = name
self.gender = gender

let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"

//safe handle of optional values
if let completedAtString = dictionary["completedAt"] as? String, completedAt = dateFormater.dateFromString(completedAtString) {
self.completedAt = completedAt
}
}
}

关于swift - NSNull 转换为具有 NSDate 类型属性的 Struct,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33488865/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com