作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我从解析中下载一些图像,然后将它们显示在表格中,但有时它会崩溃,有时它会工作。
1)下载当前用户关注的所有用户名,然后...
2)从解析中下载文件(PFFile),这些文件将根据发布时间在下载时转换为图像。然后,当用户向下滚动或按用户查看较旧的帖子时,该表将填充。
问题是,有时它会崩溃,有时它会工作并在您向下滚动时加载每个图像。我不确定发生了什么,但我认为用户关注的名称列表不会下载整个(崩溃),有时会下载(工作正常)。这是我的猜测。
错误:“ fatal error :数组索引超出范围”
1) 下载用户列表:单击“Feed”按钮时调用
func getFollowingData() {
var followQuery = PFQuery(className: "follow")
followQuery.whereKey("user", equalTo: PFUser.currentUser()!.username!)
followQuery.findObjectsInBackgroundWithBlock {
(objects: [AnyObject]?, error: NSError?) -> Void in
if error == nil {
if let objs = objects {
for name in objs {
self.followArray.append(name.objectForKey("userToFollow") as! String)
}
self.storedFollowArray = self.followArray
self.loadFollowersImages()
}
}
}
}
2) 下载用户帖子(名称和图像)
func loadFollowersImages(){ //downloading posts of people we are following
photoQuery.findObjectsInBackgroundWithBlock { (objects: [AnyObject]?, error: NSError?) -> Void in
if error == nil {
for object in objects!{
//username of post
self.resultsHasNameArray.append(object.objectForKey("username") as! String)
//Images of post
var userPicsImageDataToDownload = object["userImageFile"] as! PFFile
userPicsImageDataToDownload.getDataInBackgroundWithBlock({ (userPicData: NSData?, error: NSError?) -> Void in
if error == nil {
if let userPic = UIImage(data: userPicData!){
self.masterUserPicsArray.append(userPic)
self.resultsTable.reloadData()
}
}
})
}
}
}
}
在表格中显示:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
//....configure cell
cell.usernameLbl.text = self.resultsHasNameArray[indexPath.row] // works
cell.mainDrawView.image = masterUserPicsArray[indexPath.row] // Crashes and sometimes it works
}
不知道发生了什么。这有发生在其他人身上吗?消除此错误的最佳行动方案是什么?
最佳答案
尝试将表的重新加载包装在 dispatch_sync 中
dispatch_sync(dispatch_get_main_queue(), { Void in
self.masterUserPicsArray.append(userPic)
self.resultsTable.reloadData()
});
编辑:
表格 View 的行数基于哪个数组?因为如果 resultsHasNameArray 和 masterUserPicsArray 独立更新,那么在确定要在表中显示多少行时可能会出现问题
关于ios - 表有时加载有时崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32492352/
我是一名优秀的程序员,十分优秀!