在Swift表视图中更新JSON数据

时间:2016-09-15 04:24:31

标签: ios json swift

我是快速编程的新手。我创建了一个简单的web服务来连接swift应用程序。然后我将JSON数据作为列表检索到表视图中,并将数据插入到Web服务中。现在我想在表视图中更新json数据行。请任何人帮助我

我使用此代码插入数据。

@IBAction func btnInsert(sender: AnyObject) {

    let companyName = txtcompanyName.text
    let phoneNumber = txtphoneNumber.text
    let country = txtCountry.text
    let address = txtAddress.text
    let email = txtEmail.text
    let password = txtPassword.text


    // Send HTTP POST

    let myUrl = NSURL(string: "http://localhost:8888/MAMP/appconnect/userRegister.php");
    let request = NSMutableURLRequest(URL:myUrl!);
    request.HTTPMethod = "POST";

    let postString = "companyName=\(companyName!)&phoneNumber=\(phoneNumber!)&country=\(country!)&address=\(address!)&email=\(email!)&password=\(password!)";

    request.HTTPBody = postString.dataUsingEncoding(NSUTF8StringEncoding)
    let task = NSURLSession.sharedSession().dataTaskWithRequest(request) {
        data, response, error in

        if error != nil {
            print("error=\(error)")
        }

        do {
            let json = try NSJSONSerialization.JSONObjectWithData(data!, options: .MutableContainers) as? NSDictionary

            if let parseJSON = json {
                let resultValue = parseJSON["status"] as! String!
                print("result: \(resultValue)")

                var isUserRegistered:Bool = false
                if(resultValue == "Success") {
                    isUserRegistered = true
                }

                var messageToDisplay:String = parseJSON["message"] as! String
                if(!isUserRegistered) {
                    messageToDisplay = parseJSON["message"] as! String
                }

                dispatch_async(dispatch_get_main_queue(), {

                    //Display alert message with confirmation
                    let myAlert = UIAlertController(title: "Alert", message: messageToDisplay, preferredStyle: UIAlertControllerStyle.Alert)

                    let okAction = UIAlertAction(title: "Ok", style: UIAlertActionStyle.Default){ action in
                        self.dismissViewControllerAnimated(true, completion: nil)
                    }
                    myAlert.addAction(okAction)
                    self.presentViewController(myAlert, animated: true, completion: nil)
                })
            }
        } catch {
            print(error)
        }
    }
    task.resume()
}

1 个答案:

答案 0 :(得分:1)

我在上面的代码段中没有看到任何使用新行更新表格视图的代码。在tableview中添加新行需要遵循的步骤是

  1. 更新您的数据源(数组,字典 - 用于填充表格的任何内容)

  2. 使用https://developer.apple.com/reference/uikit/uitableview/1614879-insertrows或通过重新加载tableview(首选前者)在tableview中插入一行

  3. 这可以在显示警报的地方完成。

    如果您遇到其他问题,例如表格中未反映的数据,您可能需要在问题中添加更多详细信息