你想測試和解開任何Optional
然後再使用它們。這包括像as?
。如果可以避免它,則不應使用強制解包或明確解包Optional
(標記爲!
),因爲它們會導致意外的運行時崩潰。
import Foundation
// create test data
let testJson = ["profile_image_url": "http://some.site.com/"]
var data: NSData?
// convert to NSData as JSON
do {
data = try NSJSONSerialization.dataWithJSONObject(testJson, options: [])
} catch let error as NSError {
print(error)
}
// decode NSData
do {
// test and unwrap data
if let data = data {
let json = try NSJSONSerialization.JSONObjectWithData(data, options: .AllowFragments)
// test and unwrap cast to String
if let userImage = json["profile_image_url"] as? String {
print("USER IMAGE:\(userImage)")
}
}
} catch let error as NSError {
print(error)
}
只是使它像這樣'JSON [「profile_image_url」]作爲字符串?' – HardikDG
@Pyro避免使用武力,展開只要有可能,它會導致錯誤和運行時崩潰。 – ColGraff
@ luk2302其工作完美。我有其他問題 讓評論= unwrapResults.items爲! Array 錯誤是模糊使用項目 –