0
我正在尝试为我的REST参数创建一个字典。我遇到的问题是我的数据模型使用了许多可选的值,而我的params字典当然不能采用零值。我想要做的是为可能为零的值设置NSNull()。例如,这是我如何创建我的参数。创建可能具有零值的REST参数字典
func addBook(book : Book, completionHandler: (error: NSError!) -> Void) {
let params : [String: AnyObject] = ["title": book.title!, "author": book.author!]
Alamofire.request(.POST, booksEndpoint, parameters: params, encoding: .JSON)
.responseJSON { response in
...
...
在这里,我隐式地解开我的变量,当对象为零时导致崩溃。
这里是我如何初始化我的数据模型
class Book: NSObject {
var title : String?
var author : String?
//Create a custom initializer from parsed JSON object
init (book : NSDictionary)
{
if let author = book["author"] as? String {
self.author = author
}
if let title = book["title"] as? String {
self.title = title
}
}
}
我应该如何妥善处理这种情况在我的PARAMS可能是零,我需要的键值设置为NSNull()?在一个现实的情况下,我会有更多的参数和可能的零值。
真棒。谢谢 – Andy
但是,当我用?在一个大的参数列表中,我可以给出一个错误,说明字典太复杂了。 – Andy
@Andy当类型推断变得太复杂时,会发生这种情况。你可以结合使用这两种方法并使用'var'声明,然后使用'params [“title”] = book.title NSNull()' – Sulthan