swift - Extra Argument In Call? -


i've been trying resolve "extra argument 'title' in call" week. below code error i'm having trouble with. i've added new code i'm working in xcode. error i'm getting code is:

"argument passed call takes no arguments"

new code

import uikit import firebase import firebasedatabase  struct poststruct {     struct poststruct {         let title: string         let message : string     } }  class databaseviewcontroller: uitableviewcontroller {     var posts: [poststruct] = []      override func viewdidload() {         super.viewdidload()         //         let databaseref = database.database().reference()          databaseref.child("posts").queryorderedbykey().observe(.childadded, with: {             snapshot in              let snapshotvalue = snapshot.value as? nsdictionary             let title = snapshotvalue?["title"] as? string              let message = snapshotvalue?["message"] as? string              self.posts.insert(poststruct(title: title ?? "", message: message ?? ""), at: 0) **// <-- argument passed call takes no arguments**             self.tableview.reloaddata()         })         post()     }      func post(){         let title = "title"         let message = "message"          let post : [string : anyobject] = ["title" : title anyobject, "message" : message anyobject]           let databaseref  = database.database().reference()          databaseref.child("posts").childbyautoid().setvalue(post)     }      override func tableview(_ tableview: uitableview, numberofrowsinsection section: int) -> int {         return posts.count     }      override func tableview(_ tableview: uitableview, cellforrowat indexpath: indexpath) -> uitableviewcell {         var cell = tableview.dequeuereusablecell(withidentifier: "cell")          if cell == nil {             cell = uitableviewcell(style: .default, reuseidentifier: "cell")             cell?.textlabel?.text = "new value"             cell?.detailtextlabel?.text = "new value"             return cell!         } else {             cell?.textlabel?.text = "" //reset value             cell?.detailtextlabel?.text = "" // resetvalue             cell?.textlabel?.text = "new value"             cell?.detailtextlabel?.text = "new value"             return cell!         }     } } 

old code

import uikit import firebase import firebasedatabase  struct poststruct {     let title = string!.self     let message : string! }  class databaseviewcontroller: uitableviewcontroller {     var posts = [poststruct]()      override func viewdidload() {         super.viewdidload()         //         let databaseref = database.database().reference()          databaseref.child("posts").queryorderedbykey().observe(.childadded, with: {             snapshot in              let snapshotvalue = snapshot.value as? nsdictionary             let title = snapshotvalue?["title"] as? string              let message = snapshotvalue?["message"] as? string              self.posts.insert(poststruct(title: title ,message: message), at: 0) // **<--  argument 'title' in call**             self.tableview.reloaddata()         })         post()     }      func post(){ 

your code has 2 critical flaws:

the definition of poststruct should this:

struct poststruct {     let title: string     let message : string } 

the line let title = string!.self declares title having class object, not string.

and line databaseviewcontroller:

var posts = [post] 

in code, post method, believe not want array of methods.

which should this:

var posts: [poststruct] = [] 

and make 2 fixes above work, need little more:

        self.posts.insert(poststruct(title: title ?? "", message: message ?? ""), at: 0) 

you may have other faults in code, @ least need fixes above. try them.


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? -