2017-07-22 6 views
0

私が作成した自分のコードを編集して、ファイアベースへのテキストの投稿を試みています。私はもともと8枚の写真と説明を許可していましたが、それ以上はありません。私は現在、リファクタリングしているので、ユーザーは最大8個の番号を選ぶことができます。写真のチェックを行い、選択した金額をアップロードします。私は、絵があるかどうかを確認する場所に小切手を入れて、それがある場合は説明を追加するためのテキストボックスを表示します。そうでない場合は、それは隠されています。私の問題は、8つの説明を投稿しているfirebaseに投稿する辞書を持っているからです。もし2を作成すると、他の6を埋めるのですが、上記のようにイメージが無ければそれをチェックする方法はありますか?アップロードする辞書に追加します。 My機能はように..私はボックスを非表示にするこの前にやっているチェックが..です以下Append Dictionary、iOS、Swift

if passImage2 == nil { 
     photo2.isHidden = true 
     photoInfo2.isHidden = true 
    } 

func postToFirebase() { 

    let post: Dictionary<String, AnyObject> = [ 
     "photoInfo1": photoInfo1.text as AnyObject, 
     "photoInfo2": photoInfo2.text as AnyObject, 
     "photoInfo3": photoInfo3.text as AnyObject, 
     "photoInfo4": photoInfo4.text as AnyObject, 
     "photoInfo5": photoInfo5.text as AnyObject, 
     "photoInfo6": photoInfo6.text as AnyObject, 
     "photoInfo7": photoInfo7.text as AnyObject, 
     "photoInfo8": photoInfo8.text as AnyObject 
    ] 


    let firebasePost = DataService.ds.REF_BASE.child("posts").child("\(stringPassed)") 
    firebasePost.updateChildValues(post) 
} 

です。

私は写真のように「ポスト」の辞書を追加するのではなく、すべて既にコード化されたそれらを持っているならば、nilでない場合、私は見るためにチェックを行うことができます願っていた

答えて

1

あなたphotoInfoを必要としない場合ナンバリングでcontinuosであることを、あなたはそれがcontinuosする必要がある場合は、ラベルテキストの配列をフィルタリングすることができ、その後enumaratedと減らすの使用で、あなたは新しい辞書を作成することができます

let filtered = post.filter { (key, value) -> Bool in 
    guard let stringValue = value as? String else { return false } 
    return stringValue != "" 
} 

を使用することができます。

+0

このLuzoをありがとうございます。これはeに完璧に働きました。新しいことを学びました。私は今、私がこのフィルタを使って何かを持つアイテムの新しい辞書を作成できることを知っています。すごい仕事 –