私はニュースフィードとして機能テーブルビューを持っています。セルは、ニュースフィード項目の配列から埋められます。サーバーからJSONを取得し、その入力からニュースフィード項目を作成し、それらをニュースフィード配列に添付します。ニュースフィード項目には、タイトル、説明、およびイメージ文字列が含まれています。行からの細胞は私のnewsfeeditemデータで埋めます迅速な3 iOSのテーブルビューのデータソースメモリ
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
var cell = tableView.dequeueReusableCell(withIdentifier: "ImageFeedItemTableViewCell1", for: indexPath) as! ImageFeedItemTableViewCell
var item = self.feed!.items[indexPath.row]
if (item.messageType == 1){
cell = tableView.dequeueReusableCell(withIdentifier: "ImageFeedItemTableViewCell1", for: indexPath) as! ImageFeedItemTableViewCell
cell.title.text = item.title
cell.description.text = item.contentText
if (item.imageURL as URL == URL(string: "noPicture")!)
{
cell.picture.image = UIImage(named:"empty")
}
else{
if (item.cachedImage == UIImage(named:"default-placeholder")){
let request = URLRequest(url: item.imageURL as URL)
cell.picture.image = item.cachedImage
cell.dataTask = self.urlSession.dataTask(with: request, completionHandler: { (data, response, error) -> Void in
OperationQueue.main.addOperation({() -> Void in
if error == nil && data != nil {
let image = UIImage(data: data!)
if (image != nil){
self.feed!.items[indexPath.row].cachedImage = image!
}
cell.picture.image = image
}
})
})
cell.dataTask?.resume()
}else
{
cell.picture.image = item.cachedImage
}
}
}
:で
。
しかし、私は、アレイ内のすべての私のnewsfeeditemsを維持するので、メモリ使用量が高く、各追加newsfeeditemについてgehts高いです。私はそれがツイッターのような無限のスクロールで動作するようにしたいので、経験豊富な開発者がどのようにこのメモリ問題に取り組んでいるのだろうかと思います。
にコードスニペット私は行方不明のコードを追加した –
としてcellForRowAtメソッドを追加してください! –
ページネーションは、私もそのことについて考えてフィード – Ccr