简体   繁体   中英

Firebase function freezes app in xcode7, but works in xcode6.4

For some reason this code works perfectly in xcode6.4, but when switching to xcode7 it freezes the app.

What I am trying to do is pull the post information on a user's feed and display it on a tableview. I am able to pull the information from Firebase, but the app freezes before it displays on the tableview.

EDIT: The tableview works when I do not have any constraints or autolayout. It seems to not work when I try to have dynamic cell heights.

func getRadarData() {
    let url = "https://(insert appname).firebaseio.com/users/" + currentUser + "/postsReceived/"
    let targetRef = Firebase(url: url)

    targetRef.observeEventType(.ChildAdded, withBlock: {
        snapshot in
        print("child")

        if let found = self.posts.map({ $0.key }).indexOf(snapshot.key) {
            let obj = self.posts[found]
            print(obj)
            print(found)
            self.posts.removeAtIndex(found)
        }

        let postsUrl = "https://(insert appname).firebaseio.com/posts/" + snapshot.key
        let postsRef = Firebase(url: postsUrl)
        var updatedAt = snapshot.value["updatedAt"] as? NSTimeInterval
        var endAt = snapshot.value["endAt"] as? NSTimeInterval

        if updatedAt == nil {
            updatedAt = 0
        }

        if endAt == nil {
            endAt = 0
        }

        postsRef.observeSingleEventOfType(.Value, withBlock: { snapshot in
            if let key = snapshot.key
            {if let content = snapshot.value["content"] as? String {
                if let creator = snapshot.value["creator"] as? String {
                    if let createdAt = snapshot.value["createdAt"] as? NSTimeInterval {
                                let userurl = "https://(insert appname).firebaseio.com/users/" + (creator)
                                let userRef = Firebase(url: userurl)
                                userRef.observeSingleEventOfType(.Value, withBlock: { snapshot in
                                    if let username = snapshot.value["username"] as? String {
                                        let updatedDate = NSDate(timeIntervalSince1970: (updatedAt!/1000))
                                        let createdDate = NSDate(timeIntervalSince1970: (createdAt/1000))
                                        let endedDate = NSDate(timeIntervalSince1970: (endAt!))

                                        let post = Post(content: content, creator: creator, key: key, createdAt: updatedDate, name: username, joined: true, messageCount: 0, endAt: endedDate)

                                        self.posts.append(post)

                                        // Sort posts in descending order
                                        self.posts.sortInPlace({ $0.createdAt.compare($1.createdAt) == .OrderedDescending })
                                        self.tableView.reloadData()

                                    }
                                })

                    }
                }
                }

            }
        })
    })
}

Here is my code for my tableview where I used autolayout on the textView and nameLabel

    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

    let cell: RadarTableViewCell = tableView.dequeueReusableCellWithIdentifier("radarCell", forIndexPath: indexPath) as! RadarTableViewCell

    let creator: (String) = posts[indexPath.row].creator
    let key = posts[indexPath.row].key

    let radarContent: (AnyObject) = posts[indexPath.row].content
    cell.textView.selectable = false
    cell.textView.text = radarContent as? String
    cell.textView.userInteractionEnabled = false

    cell.textView.selectable = true

    let radarCreator: (AnyObject) = posts[indexPath.row].name

    cell.nameLabel.text = radarCreator as? String

    return cell

The issue was that I had initial text in my textView. I deleted it on my Storyboard and my app works now.

Found the solution here: Why does a previously working Xcode project hang up in Xcode 7 when presenting a new UITableviewController Subclass?

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM