ios - 为什么去我得到这个错误 : "Could not find member ' append'"?

标签 ios json swift

我是 Swift 的新手,正在尝试执行 GET 请求并解析 JSON 响应。在我解析 JSON 并将其放入字符串数组后,它给了我错误:

Could not find member 'append'

这是完整的代码:

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)
}

但它给了我错误:

Could not find member 'append'.

如果我从

deviceListUUid[i].append(sessionUUid)

deviceListUUid[i] = sessionUUid

它反而给我这个错误:

array index out of range

我是不是遗漏了什么?

最佳答案

您正在访问 deviceListUUid 数组的元素并尝试将您的值附加到那里。由于该元素是 String 类型,它找不到 append 函数,因为 String 确实提供了追加,但它只追加了一个字符,并且扩展您正在访问的字符串。

相反,将您的新字符串附加到数组:

deviceListUUid.append(sessionUUid)

注意 IMO 你的语义并不完全正确。也就是说,对我来说,将 sessionUUid 附加到设备 UUID 列表是没有意义的。相反,您可能想要创建一个设备 UUID 数组(您已经拥有),它又包含一个 session UUID 数组,或者更好的是将设备 UUID 映射到 session UUID 的字典(如果这对您的最终目标有意义) .

关于ios - 为什么去我得到这个错误 : "Could not find member ' append'"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28022187/

相关文章:

ios - Xcode运行按钮消失

ios驱动sdk |我如何检查每张票,然后取消它?例如如果它有 tag = 1,我需要取消它

ios - 确保我正确解释了嵌套 GCD

javascript - 使用 Axios 发布 JSON ('passed value not string or JSON object' 的问题)

ios - appdelegate 中的计时器导致崩溃

sql - 如何将 sqlite.swift 语句打印为 SQL?

swift - ElementQuiz 应用程序-线程 1 : breakpoint 1. 4

ios - 将 pdf 的内容读取为字符串

javascript - 通过 API 响应实现站点自动化

ios - swifty json 经常崩溃