2017年3月22日 星期三

呈現所關注的用戶的影像和留言



想法是這樣....

兩階段的資料庫的找法

先去查     Followers entity

找出目前登入者有關注的人的所有名單,  放在  followeringusers array

然後在這個   followeringusers array...

去找   entity name 為   Posts .... 所記錄的圖片和留言

 func searchFollower(){
        let appDelegate = UIApplication.shared.delegate as! AppDelegate
        let context = appDelegate.persistentContainer.viewContext
        let followersrequest = NSFetchRequest<NSFetchRequestResult>(entityName: "Followers")
        
        followersrequest.predicate = NSPredicate(format: "follower = %@", currentUser)
        followersrequest.returnsObjectsAsFaults = false
        
        do{
            let  followersResults = try context.fetch(followersrequest)
            if(followersResults.count > 0 ){
                for followersResult in followersResults as! [NSManagedObject] {
                    
                    let followeringUser = followersResult.value(forKey: "following") as! String
                    followeringusers.append(followeringUser)
                }
            }
        }catch{
            
        }
        
        // 加上自己

        followeringusers.append(currentUser)

 for followinguser in followeringusers {
            let  postsRequest = NSFetchRequest<NSFetchRequestResult>(entityName: "Posts")
            postsRequest.predicate = NSPredicate(format: "username = %@", followinguser)
            postsRequest.returnsObjectsAsFaults = false
            
            do {
                 let results = try context.fetch(postsRequest)
                
                if  results.count > 0 {
                    for result in results as! [NSManagedObject]{
                        let username = result.value(forKey: "username") as! String
                        let message = result.value(forKey: "message")   as! String
                        let image = result.value(forKey: "image")       as! NSData
                        usernames.append(username)
                        messages.append(message)
                        imageFiles.append(image)

                    }
                }
            }catch{
                 print("Could not fin following User info")
            }
                  

            
        }

       
        //print(followeringusers)
        
    }


找完之後... 在  這邊加載

圖片這邊...  要做一下處理..  先把 NSData 轉成 Data... 然後呼叫  UIimage(data: data)



 override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as! FeedTableViewCell

        // Configure the cell...

        cell.usernameLabel.text = usernames[indexPath.row]
        cell.messageLabel.text  = messages[indexPath.row]
        cell.postedImage.image = UIImage(data: imageFiles[indexPath.row] as Data)
        
        
        
        return cell
    }
    





沒有留言:

張貼留言