ios - Array Elements continously appended -


im querying firebase , elements returning properly. when search twice 2 elements appear. means 2 elements appended array. should 1 , 1 thing comes search. 2 elements should not there if search twice.

 if self.postsarray.count == 0            {                self.postsarray.append(newpost!)                  self.filteredposts = self.postsarray.filter { (post) -> bool in                    return post.title.lowercased().contains(stringvalue.lowercased())                 }                dispatchqueue.main.async {                    self.explorecollectionview?.reloaddata()                }             }            else            {                 post in self.postsarray                {                    if post.key == newpost?.key{                         self.filteredposts = self.postsarray.filter { (post) -> bool in                            return post.title.lowercased().contains(stringvalue.lowercased())                         }                        dispatchqueue.main.async {                            self.explorecollectionview?.reloaddata()                        }                        return                    }                    else                    {                        self.postsarray.append(newpost!)                        //                            self.postsarray.sort(by: { (post1, post2) -> bool in                        //                                return post1.title.compare(post2.title) == .orderedascending                        //                            })                         self.filteredposts = self.postsarray.filter { (post) -> bool in                            return post.title.lowercased().contains(stringvalue.lowercased())                         }                        dispatchqueue.main.async {                            self.explorecollectionview?.reloaddata()                        }                     }                 }             } 

so im asking nicely if @ , see error in logic is making things added filtered events array more once

i guess problem in loop , there whenever new post not equal appending new post array, whereas should appended once

so can use filter see if contains newpost

so replace

for post in self.postsarray                {                    if post.key == newpost?.key{                         self.filteredposts = self.postsarray.filter { (post) -> bool in                            return post.title.lowercased().contains(stringvalue.lowercased())                         }                        dispatchqueue.main.async {                            self.explorecollectionview?.reloaddata()                        }                        return                    }                    else                    {                        self.postsarray.append(newpost!)                        //                            self.postsarray.sort(by: { (post1, post2) -> bool in                        //                                return post1.title.compare(post2.title) == .orderedascending                        //                            })                         self.filteredposts = self.postsarray.filter { (post) -> bool in                            return post.title.lowercased().contains(stringvalue.lowercased())                         }                        dispatchqueue.main.async {                            self.explorecollectionview?.reloaddata()                        }                     } 

with

let filteredarr = self.postsarray.filter { (post) -> bool in                            return post.key == newpost?.key }  if filteredarr.count == 0 {      //append      self.postsarray.append(newpost!) }     self.filteredposts = self.postsarray.filter { (post) -> bool in                            return post.title.lowercased().contains(stringvalue.lowercased())                         }                        dispatchqueue.main.async {                            self.explorecollectionview?.reloaddata()                        } 

Comments

Popular posts from this blog

ubuntu - PHP script to find files of certain extensions in a directory, returns populated array when run in browser, but empty array when run from terminal -

php - How can i create a user dashboard -

javascript - How to detect toggling of the fullscreen-toolbar in jQuery Mobile? -