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