0

過去 2 週間、チュートリアルはとてもシンプルに見えますが、firebase にデータを書き込むのに苦労してきました:/....私のアプリにはビュー コントローラーとテーブルビュー コントローラーがあります。ユーザーは、イベントのタイトル、イベントの日付、説明 (文字列) を追加し、写真も追加できます。シミュレーターを実行しようとすると、クラッシュします。以下のコードを参照してください。これが本当にイライラするのを助けてください..コードにブレークポイントを配置してもクラッシュします..誰かがチャットで私を助けてくれたら、それは素晴らしいことかもしれませんし、ファイルを送信して長すぎる原因となる可能性があります私は答えが必要なので、問題を理解しています。

import UIKit
import Firebase
import FirebaseDatabaseUI

class EventViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate {

//outlets for text & image
@IBOutlet weak var photoImageView: UIImageView!

@IBOutlet weak var eventName: UITextField!
@IBOutlet weak var eventDate: UITextField!
@IBOutlet weak var eventDes: UITextView!

//Database connection
let rootref = FIRDatabase().reference()
var imagePicker: UIImagePickerController = UIImagePickerController()



override func viewDidLoad() {
    super.viewDidLoad()
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
}


@IBAction func submitEvent(sender: AnyObject) {

    let name = eventName.text
    let date = eventDate.text
    let text = eventDes.text
    var data: NSData = NSData()
    var user = NSDictionary()//declare here

    if let image = photoImageView.image {
        data = UIImageJPEGRepresentation(image,0.1)!
    }

    let base64String = data.base64EncodedStringWithOptions(NSDataBase64EncodingOptions.Encoding64CharacterLineLength)

    if let unwrappedName = name , unwrappedDate = date, unwrappedText = text{
        //use your declared dictionary
        user = ["name":unwrappedName, "date":unwrappedDate, "text":unwrappedText, "photoBase64":base64String]
    }


    //Add firebase child node
    //let event = FIRDatabase().reference().child(name!)
    //Do not create one more reference to database

    rootref.child(name!)
    rootref.child(name!).setValue(user)


    navigationController?.popViewControllerAnimated(true)
}

override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
    view.endEditing(true)
    super.touchesBegan(touches, withEvent: event)
}

    //UIImagePickerControllerDelegate methods

    func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
        imagePicker.dismissViewControllerAnimated(true, completion: nil)
        photoImageView.image = info[UIImagePickerControllerOriginalImage] as? UIImage
    }

    func imagePickerControllerDidCancel(picker: UIImagePickerController) {
        dismissViewControllerAnimated(true, completion: nil)
    }

@IBAction func addPicture(sender: AnyObject) {
    if(UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.Camera)) {
        imagePicker =  UIImagePickerController()
        imagePicker.delegate = self
        imagePicker.sourceType = .Camera

        presentViewController(imagePicker, animated: true, completion: nil)
    } else {
        imagePicker.allowsEditing = false
        imagePicker.sourceType = .PhotoLibrary
        imagePicker.delegate = self
        presentViewController(imagePicker, animated: true, completion:nil)
    }
}
}
4

0 に答える 0