gpt4 book ai didi

ios - 在 session 后无法识别的 NSURL session 期间添加到 NSMutableArray()

转载 作者:行者123 更新时间:2023-11-29 01:28:54 24 4
gpt4 key购买 nike


我正在使用 NSURL 来获取网站页面的源代码。我通过 URL 传递 MySQL 查询指令来与数据库交互,以获取用户好友的列表。一切都运行良好,直到将返回的数据添加到数组中,并将它们归档到 TableView 中。网站的响应很好地打印到终端,但是如果我将其添加到要添加到 TableView 的数组中,则在 NSURl session 完成后无法识别它。

代码:

//
// viewFriendsViewController.swift
// collaboration
//
// Created by nick on 11/12/15.
// Copyright © 2015 Supreme Leader. All rights reserved.
//

import UIKit

class viewFriendsViewController: UIViewController {

@IBOutlet weak var tableView: UITableView!

var textArray: NSMutableArray! = NSMutableArray()

func tableView(tableView: UITableView, numberOfRowsInSection Section: Int) -> Int {
return self.textArray.count
}

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell: UITableViewCell = self.tableView.dequeueReusableCellWithIdentifier("cell")! as UITableViewCell
cell.textLabel?.text = self.textArray.objectAtIndex(indexPath.row) as? String
return cell
}

override func viewWillAppear(animated: Bool) {
let username = NSUserDefaults.standardUserDefaults().stringForKey("username")
if username != nil {
let myUrl = NSURL(string: "http://www.casacorazon.org/ios.html")
let request = NSMutableURLRequest(URL: myUrl!)
request.HTTPMethod = "POST"
let task = NSURLSession.sharedSession().dataTaskWithRequest(request) {
data, response, error in
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0)) {
let responseString = NSString(data: data!, encoding: NSUTF8StringEncoding)
if error != nil {
print("Error: \(error)")
}
self.textArray.addObject(responseString as! String)
}
}
task.resume()
} else {
self.textArray.addObject("Error")
self.textArray.addObject("You are not logged in")
}
self.tableView.rowHeight = UITableViewAutomaticDimension
self.tableView.estimatedRowHeight = 44.0
}
override func viewDidLoad() {
super.viewDidLoad()
}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()

}
}


谢谢你的帮助

最佳答案

您必须重新加载 TableView 数据。添加

self.tableView.reloadData()

紧接着

self.textArray.addObject(responseString as! String)

我建议将 textArray 声明为非可选的 Swift 数组

var textArray = [String]()

然后所有出现的 addObject 都必须替换为 append并更改 cellForRowAtIndexPath 中的行以获取索引路径的值

cell.textLabel?.text = self.textArray[indexPath.row] // no type casting needed

关于ios - 在 session 后无法识别的 NSURL session 期间添加到 NSMutableArray(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33697517/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com