【发布时间】:2015-01-19 10:12:34
【问题描述】:
我是 Swift 新手,正在尝试执行 GET 请求并解析 JSON 响应。在我解析 JSON 并将其放入字符串数组后,它给了我错误:
找不到成员“追加”
这是完整的代码:
var deviceListUUid = [String]();
func getDeviceList(uuid: String , name: String , pwd: String) {
let url = NSURL(string: "http://" + SERVER_IP + ":" + PORT + "/account/user/" + uuid + "/associations")
HttpGet_getDeviceList(url!, name: name, pwd: pwd)
}
func HttpGet_getDeviceList(url: NSURL,name: String , pwd: String){
println("url = \(url)");
var encode = name + ":" + pwd;
var byte = [UInt8](encode.utf8)
let nsdata : NSData = NSData(bytes: byte as [Byte], length: byte.count)
let base64 : NSString = nsdata.base64EncodedStringWithOptions(NSDataBase64EncodingOptions(rawValue: 0))
var request = NSMutableURLRequest(URL: url);
request.HTTPMethod="GET"
request.setValue("application/json", forHTTPHeaderField: "Accept")
let queue:NSOperationQueue = NSOperationQueue()
NSURLConnection.sendAsynchronousRequest(request, queue: queue, completionHandler: {(response: NSURLResponse!, data: NSData!,error: NSError!) -> Void in
let httpResponse = response as NSHTTPURLResponse
if(httpResponse.statusCode == 200) {
//analysis json
let jsonObject : AnyObject! = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: nil)
self.AnalysisJSON(jsonObject)
}else{
self.setReplyStatus(CouchbaseEnum.ReplyStatus.LOGIN_ERROR)
}
})
}
func AnalysisJSON(json:AnyObject) {
if var jsonArray = json["value"] as? NSArray{
println("jsonArray.count = \(jsonArray.count)")
for var i = 0 ; i < jsonArray.count; i++ {
if var deviceID = jsonArray[i] as? NSDictionary {
if var info = deviceID["info"] as? NSDictionary {
if var sessionUUid = info["sessionUuid"] as? NSString {
println("sessionUUid = \(sessionUUid)")
deviceListUUid[i].append(sessionUUid)
}
}
}
}
}
}
我调用函数getDeviceList,它调用HttpGet_getDeviceList并获取JSON数据并将其传递给函数AnalysisJSON。
到目前为止一切正常。我想像这样将 JSON 字符串数据放入字符串数组中:
if var sessionUUid = info["sessionUuid"] as? NSString {
deviceListUUid[i].append(sessionUUid)
}
但它给了我错误:
找不到成员“追加”。
如果我改变了
deviceListUUid[i].append(sessionUUid)
到
deviceListUUid[i] = sessionUUid
它反而给了我这个错误:
数组索引超出范围
我错过了什么吗?
【问题讨论】:
-
另一个注意事项:按照惯例,只对类/结构使用大写首字母,而不是实例和函数。