gpt4 book ai didi

ios - 解析 localDatastore 仅返回 1 个对象

转载 作者:行者123 更新时间:2023-11-30 14:07:20 26 4
gpt4 key购买 nike

我有一个播客应用程序。当用户点击订阅按钮时,我在我的对象上执行以下代码:

    PFObject.pinAllInBackground(self.episodesToSendToParse)
PFObject.saveAllInBackground(self.episodesToSendToParse)

在我的主视图 Controller (PFQueryTableViewController)中,我有以下精简代码:

class MainTableViewController:  PFQueryTableViewController  {
override init(style: UITableViewStyle, className: String!) {
super.init(style: style, className: className)
}


required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)

self.parseClassName = "Podcast"
self.pullToRefreshEnabled = true
self.textKey = "name"
self.imageKey = "artwork"
self.paginationEnabled = true
self.objectsPerPage = 50
}

override func viewWillAppear(animated: Bool) {
print("view will appear")
if (PFUser.currentUser() != nil) {
self.loadObjects()
print("reloading")
}
}



override func queryForTable() -> PFQuery {
let query = PFQuery(className: "Podcast")
query.fromLocalDatastore()
query.whereKey("user", equalTo: PFUser.currentUser()!)
return query
}

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath, object: PFObject?) -> PFTableViewCell? {
let cellIdentifier = "Cell"
var cell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier) as? PFTableViewCell
if cell == nil {
print("cell not created")
cell = PFTableViewCell(style: .Subtitle, reuseIdentifier: cellIdentifier)
}


if let name = object?["name"] as? String {
cell!.textLabel!.text = name
}

if let artist = object?["artist"] as? String {
cell!.detailTextLabel!.text = artist
}
return cell!
}
}

问题是我的 tableView 中只返回一个播客,这是最后保存的播客。如果我禁用 queryForTable(),将从在线 Parse 中提取数据并且加载正常。我已经检查了模拟器文件夹中的 ParseOfflineStore 数据库,所有数据都在那里。我不确定此时我能做什么。

localDatastore 当然是在 AppDelegate 中激活的。

编辑:我是黄。所有数据未正确保存在本地数据存储中。所有播客剧集均已正确保存,但我递归地保存父播客,但它只是替换了以前的播客。它不会在数据库中添加新条目。这是我用来保存播客的方法:

class SaveToParse {
let podcastClass = "Podcast"
let episodesClass = "Episodes"
var episodesToSendToParse = [PFObject]()

func savePodcastToParse(name: String, artist: String, summary: String, feedURL: String, artworkURL: String, date: NSDate, episodes: [MWFeedItem], artwork: PFFile) {

let currentP = PFObject(className: self.podcastClass)
currentP["user"] = PFUser.currentUser()
currentP["name"] = name
currentP["artist"] = artist
currentP["summary"] = summary
currentP["feedURL"] = feedURL
currentP["artworkURL"] = artworkURL
// currentP["artwork"] = artwork
currentP["date"] = date


for episode in episodes {
let episodesToParse = PFObject(className: self.episodesClass)
episodesToParse["showDate"] = episode.date
episodesToParse["title"] = episode.title
episodesToParse["downloadURL"] =
episode.enclosures[0].valueForKey("url") as? String
episodesToParse["showNotes"] = episode.summary
episodesToParse["localPath"] = ""
episodesToParse["isDownloaded"] = "no"
episodesToParse["parent"] = currentP
self.episodesToSendToParse.append(episodesToParse)
self.episodesToSendToParse.append(currentP)
}
PFObject.pinAllInBackground(self.episodesToSendToParse)
PFObject.saveAllInBackground(self.episodesToSendToParse)
}
}

最佳答案

您需要像这样实现 UITableViewDataSource 的 numberOfRowsInSection: :

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

关于ios - 解析 localDatastore 仅返回 1 个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32202416/

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