Привет! Вот так выглядит класс ячейки:
class PostsCollectionViewCell: UICollectionViewCell {
let path = "https://jsonplaceholder.typicode.com/posts"
var data: Posts? = nil
@IBOutlet weak var bgView: UIView!
@IBOutlet weak var titleLabel: UILabel!
@IBOutlet weak var searchTextField: UITextField!
@IBOutlet weak var searchButton: UIButton!
@IBOutlet weak var postBodyLabel: UILabel!
@IBOutlet weak var postTitleLabel: UILabel!
@IBAction func searchButtonTapper(_ sender: UIButton) {
data = JSONManager.performRequest(dataType: .posts, path: path, id: 1) as? Posts
}
override func awakeFromNib() {
super.awakeFromNib()
self.titleLabel.text = "Posts"
self.searchButton.setTitle("Search", for: .normal)
self.bgView.backgroundColor = UIColor.orange
}
}
Класс JSONManager:
class JSONManager {
static func performRequest(dataType: JSONDataType, path: String, id: Int) -> JSONData {
let fullPath = path + "/" + String(id)
let url = URL(string: fullPath)
let data = DataFactory.createData(type: dataType)
print(fullPath)
Alamofire.request(url!).responseJSON { (responseData) in
if ((responseData.result.value) != nil) {
let json = JSON(responseData.result.value!)
print("JSON - \(json)")
print("DATA - \(data)")
if let dictionaryData = json.dictionaryObject as [String:AnyObject]? {
data.setupDataFromJSON(json: dictionaryData, id: 1)
} //Second statement
} //First statement
} //Completion Handler
return data
}
}
В JSONManager данные успешно приходят, но вот в классе ячейки они всегда nil. Почему так происходит и как это можно исправить? И как я могу обновить данные в ячейке, после того, как получу их?
Сама задумка заключается в том, что нажав на кнопку в ячеке, идет запрос на сервер, после чего все данные в ячейке обновляются на те, что пришли.