ios - UICollectionView 不重新加载数据

标签 ios swift search parse-platform uicollectionview

我正在尝试在使用 Parse 的应用程序中实现搜索功能,并希望使用重新加载数据来对 PFObjects 进行排序。我的应用程序可以第一次执行 reloadData() ,但它在第一次后返回“在展开可选值时意外发现 nil”。我尝试在 mainThread 中进行 reloadData 并删除 collectionView 中的弱引用,但它仍然不起作用。我在下面附上了我的代码。预先感谢您!

@IBOutlet var collectionView: UICollectionView!

override func viewDidLoad() {
    super.viewDidLoad()

    loadCollectionViewData()
}

//This method is also conducted when the user taps search button
func loadCollectionViewData(){
    let ud = NSUserDefaults.standardUserDefaults()

    var query = PFQuery(className: "Posts")


    if ud.objectForKey("searchKeyFromVCKey") != nil{
        //This is keyword the user puts in
        var searchKey = ud.objectForKey("searchKeyFromVCKey") as! String
        println("searchKey \(searchKey)")

        if searchKey != "" {
            //If a user is searching something...
            query.whereKey("searchTag", containsString: searchKey.lowercaseString)
        }}

    query.findObjectsInBackgroundWithBlock {
        (objects: [AnyObject]?, error: NSError?) -> Void in


        if error == nil {

           postObject.removeAll(keepCapacity: false)

            if let object = objects as? [PFObject] {
                postObject = object


            }

            self.collectionView.reloadData() //This works the first time when I conduct loadCollectionViewData() in ViewDidLoad

        } else {
            // Log details of the failure
            println("Error: \(error!) \(error!.userInfo!)")


        }

    }
    ud.removeObjectForKey("searchKeyFromVCKey")

}

最佳答案

如果您在这一行收到错误...

self.collectionView.reloadData()

..那么selfcollectionView可能为零。要检查这一点,只需在此行上放置一个断点并检查哪一个为 nil - self 或 collectionView。如果您不知道如何设置断点并检查调试器中的值,请搜索教程 - 这很简单,但这里需要解释太多。如果您想继续编程,无论如何您都必须学习这一点。

并且:从 collectionView 中删除“弱”是一个坏主意,因为它可能导致引用循环和内存泄漏。

关于ios - UICollectionView 不重新加载数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32025420/

相关文章:

ios - 重新排列 UITableViewCells 会导致单元格内容中断

如果记录存在,MySQL 按日期搜索的最快方法

python - 搜索 Pandas 数据框,在 find 上开始新搜索

swift - 快速从 Scripting-Bridge 访问 SBElementArray 内容

ios - 快速检查 textview 是否为空

Swift - 约束关联类型时出现编译错误

javascript - algolia 搜索 - 突出显示的属性与代码段的属性

ios - 在 Xcode 5 中运行代码覆盖时出现数十个 "profiling:invalid arc tag"

ios - 无法推断通用参数

ios - CFRunLoopSource 中的 CFRunLoopScheduleCallBack 函数的用途是什么?