【发布时间】:2016-07-02 00:00:14
【问题描述】:
我的代码运行良好,并且在解析服务器中的一些 JSON 时不会发出警告。它运行并毫无问题地返回控制台中的值,直到我尝试导入 AWSNS 框架,然后它在标题中给我警告并在运行时崩溃说“-[__NSCFArray 长度]:无法识别的选择器发送到实例”。任何想法为什么在我导入 Amazon 的 SNS 框架时这可能会失败?
这是我的代码:
import UIKit
import AWSSNS
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
self.getEvents()
}
func getEvents(){
let requestURL: NSURL = NSURL(string: "http://www.example.com/mydirectory/JSONFile")!
let urlRequest: NSMutableURLRequest = NSMutableURLRequest(URL: requestURL)
let session = NSURLSession.sharedSession()
let task = session.dataTaskWithRequest(urlRequest) {
(data, response, error) -> Void in
let httpResponse = response as! NSHTTPURLResponse
let statusCode = httpResponse.statusCode
if (statusCode == 200) {
print("File downloaded successfully.")
do{
let json = try NSJSONSerialization.JSONObjectWithData(data!, options:.AllowFragments)
if let events = json["events"] as? [[String: AnyObject]] {
for event in events {
if let eventName = event["eventName"] as? String {
if let day = event["day"] as? String {
print(day,eventName)
}
}
}
}
}catch {
print("Error with Json: \(error)")
}
}
}
task.resume()
}
【问题讨论】:
-
警告出现在“if let events = json["events"] as? [[String: AnyObject]]”行上
-
检查选项左键单击 json 以查看 Xcode 认为变量的类型,无论是否导入
标签: ios swift amazon-web-services amazon-sns