【iOS】ユーザー投稿型アプリのブロック機能でやったこと~備忘録
スポンサーリンク

Appleの審査に通すため、とりあえずブロックされた投稿はfirebaseから消すことで対応しました。

しかし、そうするとユーザーAがユーザーBの投稿をブロックした際、ユーザーCからもBの投稿が見れなくなってしまいますね。

 

 

 

タグでコンテンツを管理する

 

ブロックボタンをblockButtonとしてtagで管理する。

L91の型のBlockButtonは別で作ったクラスで、プロパティにuidとfolderがある。

 

 

型をBlockButtonにすることで、uidとfolderが扱えるようになる。

indexPath.row番目に対応するuidとfolderを、blockButton.uidとblockButton.folderに代入している。(L94,95)

 

つまり、各ブロックボタンはindexPath.row番目に対応するuidとfolderを持っている。

 

ブロックボタンが押された時の処理

 

 

UserDefaultsを使って、ブロックした投稿はそのユーザー(端末)ではもう見れないようにします。

まず、L46で辞書blockDicを定義し、キー値blockedで保存されている値を代入します。

さらに、L47でblockDicにブロックされた投稿のuidにfolderを足した文字列をkeyとし、valueをtrueにしたものを追加します。(L37でsenderの型がBlockButtonになっているため、sender.uidとすることでその投稿のuidが使える)

L48でUserDefaultsのキー値blockedの値として、辞書blockDicを保存します。

 

L40は、まだ誰もブロックしていないユーザーだった時、キー値blockedで保存された値がないため、初期値として入れておいている。(エラーにならないように)

 

最後にL50でタイムラインにユーザーたちの投稿を再描画します。

このdisplayメソッド内でUserDefaultsのキー値blockedで保存されている辞書blockDicを使い、ブロックされた投稿が表示されないようにする必要がある。

 

描画するときに辞書blockDicに入ったキーと一致する投稿を表示させなくする

まず、ブロック機能に関係なく画面遷移した時点で描画はされるため、誰もブロックしていない(キー値blockedで保存された値が無い)場合にはとりあえず初期値を入れておく(エラーを防ぐため)(L137〜)

何度もUserDefaultsから値を取得してくるのは無駄なため、事前にblockListに代入しておく。(L143)

 

まずキーを指定するために、optional型のdata["uid"]をL164でアンラップします。

L167〜168で、key["\(data_uid)1"]で保存された値があり、その値がtrueなら、kaitouArrayに加えない(なんの処理も書かない)という処理を書きます。

L169〜で、そうでなければ(ブロックしていなければ)、kaitouArrayに加える。(表示する)処理を書きました。

これで終わりです。

Swift(iOS)が学べるオンラインスクール ランキング
CodeCamp
CodeCamp
7〜24時まで授業可能で働きながらでも学べる!!
料金
講師の質
コースの種類
転職サポート
ポイント1エンジニア経験2年以上のベテラン講師によるオンライン授業
講師は全員が現役のエンジニアで、他のスクールによく見られるアルバイト講師ではありません。マンツーマン指導で自分のレベルにあったカリキュラムが組め、満足度も高いです。また、自社開発企業への転職指導にも定評があります。

ポイント2無料レッスン体験&無料受講相談で事前に話が聞ける
事前にレッスンを体験して授業の雰囲気や学習ペースを確認できます。またエンジニア転職を目指す方にはどのコースが向いているかなどが聞けるカウンセリング(受講相談)も無料。エンジニアの生の声が聞けるので自分が働き出した時のことをイメージできます。

TechAcademy

授業型ではなく自習型なので自分のペースで学べる
料金
講師の質
コースの種類
転職サポート
ポイント1自習スタイルでチャット質問は何回でも無料
自分の分からないところを質問するスタイルなのでわかるところはサクッと、わからないところはじっくりと、無駄なく学べます。チャットの質問が無料なので、料金を気にせず何回でも聞けます。また、メンターがつくのでカウンセリングで学習の進捗やモチベーションの管理もしてくれます。
ポイント21週間の無料体験と無料カウンセリング、安心の返金制度も
無料体験の期間は1週間もあり、納得してから契約できるので安心です。事前の無料カウンセリングでは、その人にあったアドバイス等をもらうことができるので気軽に活用しよう。転職保障コースの場合、転職できなかったら全額返金!!
侍エンジニア塾
プログラミングスクールの老舗NO.1
料金
講師の質
コースの種類
転職サポート
ポイント1歴史があるからノウハウも豊富
日本で初めてオンラインのマンツーマンレッスン指導を導入した実績十分のスクール。講師も現役エンジニアでメンタリングもあるため転職のサポートも手厚く、面接対策や自己PRのフィードバックまで対応してくれます。

ポイント2転職成功率94.1%、挫折率8%
コースによっては転職成功で受講料が0円に!!  絶対にエンジニアになりたいという意思があれば超低額で転職できます。事前の無料体験で相談も可能なため、まずは話だけ聞いてみるのもあり。

おすすめの記事