Я пытаюсь получить HomeFeed для приложения, так как это мое первое основное приложение.
Мне сложно получить данные JSON и показать его на моем tableViewCell
, в частности, преобразование JSON Array/Dictionary
и его использование.
Любая помощь была бы высоко оценена и спасение жизни!Как получить JSON-словарь/массив с Alamofire 4.0 и показать его на tableView Cell
Вот мой HomeFeedTableView
класс:
class HomeFeedTableView: UIViewController {
@IBOutlet weak var menuButton: UIBarButtonItem!
@IBOutlet weak var cameraBtn: UIButton!
var tableView = UITableView()
var tableAuthor = [String]()
var tableTitle = [String]()
override func viewDidLoad() {
super.viewDidLoad()
//cameraBtn possition
cameraBtn.layer.zPosition = 1000
if self.revealViewController() != nil {
menuButton.target = self.revealViewController()
menuButton.action = #selector(SWRevealViewController.revealToggle(_:))
self.view.addGestureRecognizer(self.revealViewController().panGestureRecognizer())
}
getJSON()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
// Get JSON
func getJSON(){
let getEndPoint: String = "http://myURL/api/get_user_post/"
Alamofire.request(getEndPoint)
.responseJSON { response in
guard response.result.error == nil else {
// got an error in getting the data, need to handle it
print("error calling GET")
print(response.result.error!)
return
}
if let value = response.result.value {
let json = JSON(value)
//print(json.description)
for items in json.dictionary! {
//let author: String? = anItem["author"].stringValue
//let title: String? = anItem["title"].stringValue
//self.tableAuthor.append(author!)
//self.tableTitle.append(title!)
print(items)
}
DispatchQueue.main.async {
self.tableView.reloadData()
}
}
}
}
// MARK: - Table view data source
func numberOfSectionsInTableView(_ tableView: UITableView) -> Int {
// #warning Incomplete implementation, return the number of sections
return 1
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
// #warning Incomplete implementation, return the number of rows
return status.count
}
func tableView(_ tableView: UITableView, cellForRowAtIndexPath indexPath: IndexPath) -> UITableViewCell {
// Configure the cell...
let cell: HomeFeedTableViewCell = tableView.dequeueReusableCell(withIdentifier: "HomeCell") as! HomeFeedTableViewCell
let img = UIImage(named: imageMain[(indexPath as NSIndexPath).row])
cell.ImageMain.image = img
// cell.statusMain.text = tableAuthor[indexPath.row]
let proImg = UIImage(named: imageMain[(indexPath as NSIndexPath).row])
cell.profileImage.image = proImg
cell.profileImage.layer.cornerRadius = 20.00
cell.profileImage.clipsToBounds = true
cell.likeBtn.layer.borderWidth = 1.2
cell.likeBtn.layer.borderColor = UIColor.gray.cgColor
cell.likeBtn.layer.cornerRadius = 5
cell.likeBtn.clipsToBounds = true
cell.commentBtn.layer.borderWidth = 1.2
cell.commentBtn.layer.borderColor = UIColor.gray.cgColor
cell.commentBtn.layer.cornerRadius = 5
cell.commentBtn.clipsToBounds = true
return cell
}
@IBAction func cameraBtnClicked(_ sender: AnyObject) {
print("Camera Clicked")
}
}
И я получил этот JSON ответ
("main_content", [
{
"author" : "maruf khandakar",
"post_id" : 110,
"post_date" : "October 3, 2016",
"title" : "hjhjhjhjkljkhasfreiwutb cltjutjuregjre nb",
"show_comment_number" : "0",
"show_likes" : "0",
"post_img" : [
{
"guid" : "http:\/\/myURL\/wp-content\/uploads\/2016\/10\/IMG_1475492476.jpg"
}
],
"author_img" : "http:\/\/myUrl\/wp- content\/uploads\/2016\/10\/Screenshot_1-2.png",
"post_time" : "11:01 am",
"blog_text" : "sfdhjusolidasfjgfkdsjfdklshfj"
},
{
"author" : "maruf khandakar",
"post_id" : 112,
"post_date" : "October 3, 2016",
"title" : "hjhjhjhjkljkhasfreiwutb cltjutjuregjre nb0",
"show_comment_number" : "1",
"show_likes" : "1",
"post_img" : [
{
"guid" : "http:\/\/myUrl\/wp- content\/uploads\/2016\/10\/IMG_1475494067.jpg"
}
],
"author_img" : "http:\/\/myURL\/wpcontent\/uploads\/2016\/10\/Screenshot_1-2.png",
"post_time" : "11:27 am",
"blog_text" : "sfdhjusolidasfjgfkdsjfdklshfj0"
},
{
"author" : "russell99",
"post_id" : 129,
"post_date" : "October 24, 2016",
"title" : "russels 1st post",
"show_comment_number" : "0",
"show_likes" : "0",
"post_img" : [
{
"guid" : "http:\/\/myURL\/wpcontent\/uploads\/2016\/10\/IMG_1477280037.jpg"
}
],
"author_img" : "http:\/\/muURL\/Content\/Images\/Products\/NoImageAvailable .jpg",
"post_time" : "3:33 am",
"blog_text" : "russel post"
},
{
"author" : "russell99",
"post_id" : 131,
"post_date" : "October 24, 2016",
"title" : "russels 2nd post",
"show_comment_number" : "0",
"show_likes" : "0",
"post_img" : [
{
"guid" : "http:\/\/myURL\/wpcontent\/uploads\/2016\/10\/IMG_1477282075.jpg"
}
],
"author_img" : "http:\/\/muURL\/Content\/Images\/Products\/NoImageAvailable .jpg",
"post_time" : "4:07 am",
"blog_text" : "russel post 2"
}
])
, как я новичок в Alamofire, это было довольно запутанной для меня. Пожалуйста помоги.