使用Alamofire数据填充表格单元格
在一天的较好的一段时间里,我一直在试图和Alamofire一起玩,并用它来收集一些基于API的数据来填充表格。 我已经成功地设法将数据导入到我的iOS应用程序中(我可以通过println来查看它),但是我不能在我的生活中找出上下文来使用我的数据填充正确数量的表行并设置标签。
我的数据来自networking,
{ "members": [ "Bob Dole", "Bill Clinton", "George Bush", "Richard Nixon", ] }
我的TableViewController有这样的代码;
... var group: String? var memberArr = [String]() var member: [String] = [] ... override func viewDidLoad() { super.viewDidLoad() func getData(resultHandler: (data: AnyObject?) -> ()) -> () { Alamofire.request(.GET, "http://testurl/api/", parameters: ["groupname": "\(group!)"]) .responseJSON { (_, _, JSON, _) in let json = JSONValue(JSON!) let data: AnyObject? = json let memberArr:[JSONValue] = json["members"].array! for obj in json["members"] { let member = obj.string! } resultHandler(data: data) } } ... ... override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return memberArr.count } ....
我的返回memberArr.count不起作用
然而,我不知道如何让我的“成员”variables可以在整个控制器中访问,因为我想用它来返回适当数量的行或使用成员列表来dynamic设置标题的每个细胞。
我知道这是一个新手问题,但我已经通过StackOverflow挖掘,没有一个问题似乎适合我的情况。
先谢谢你!
发生了什么是getData有一个在后台运行的完成块,你需要告诉swift在读完返回的数据数据后更新表,但是你需要在主线程中发送这个更新:
func getData(resultHandler: (data: AnyObject?) -> ()) -> () { Alamofire.request(.GET, "http://testurl/api/", parameters: ["groupname": "\(group!)"]) .responseJSON { (_, _, JSON, _) in let json = JSONValue(JSON!) let data: AnyObject? = json let memberArr:[JSONValue] = json["members"].array! for obj in json["members"] { let member = obj.string! } resultHandler(data: data) dispatch_async(dispatch_get_main_queue()) { self.tableView.reloadData() } } }
我希望能帮到你!
- 自定义Firebase数据服务类:Swift 3
- 将文件保存在swift 3的文件目录下?
- 使用Swift获取UITableViewCell中的UITextField的indexPath
- Bridging-header.h导致命令/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftc失败,退出代码1
- 无法将数据发送到特征
- 使用NSPredicate的Swiftfilter数组
- 当快速按下取消button时如何取消下载请求
- 视图控制器之间使用segue传递variables
- 如何在Swift中使用CoreAudio API