2016-11-15 7 views
-2

構造スウィフト3のインサート構造

struct songStruct { 
    let artist = String() 
    let title = String() 
    let imgUrl = String() 
    let previewUrl = String() 
} 

var songs = [songStruct]()

エラー定義:それを呼び出すために渡される引数は引数

self.songs.insert(songStruct(artist: "artist", title: "title", imgUrl: "test", previewUrl: "test"), at: 0)

+0

ソングに空の(たとえば)タイトルを割り当てることは意味がありますか? – Alexander

答えて

2

を取りません問題は、songStructに、すべての変数に空の文字列が割り当てられているため、パラメータを取るinitメソッドがないことです。

デフォルト値が割り当てられないようにプロパティの定義を変更するだけで済みます。

struct songStruct { 
    let artist: String 
    let title: String 
    let imgUrl: String 
    let previewUrl: String 
} 
1

まず、SongStructは、大文字で始まるはずです。

struct SongStruct { 
    let artist : String 
    let title : String 
    let imgUrl : String 
    let previewUrl : String 
} 

は、そうでなければあなたはしかし、プロパティがvarとして宣言する必要があり、それを自分で追加する必要があります。すべてのメンバーはデフォルト値はありませ行うと、すべての暗黙のmemberwise初期化子の

第二にのみ作成されます。

struct SongStruct { 
    var artist = "" // shorter syntax than String() 
    var title = "" 
    var imgUrl = "" 
    var previewUrl = "" 

    init(artist: String, title: String, imgUrl: String, previewUrl: String { 
     self.artist = artist 
     self.title = title 
     self.imgUrl = imgUrl 
     self.previewUrl = previewUrl 
    } 
} 
関連する問題