Swift 3插入结构
定义结构Swift 3插入结构,swift,struct,swift3,Swift,Struct,Swift3,定义结构 struct songStruct { let artist = String() let title = String() let imgUrl = String() let previewUrl = String() } var songs=[songStruct]() 错误:传递给不带参数的调用的参数 self.songs.insert(songStruct(艺术家:“艺术家”,标题:“标题”,imgUrl:“测试”,预览:“测试”),位于:0)
struct songStruct {
let artist = String()
let title = String()
let imgUrl = String()
let previewUrl = String()
}
var songs=[songStruct]()
错误:传递给不带参数的调用的参数
self.songs.insert(songStruct(艺术家:“艺术家”,标题:“标题”,imgUrl:“测试”,预览:“测试”),位于:0)
问题在于songStruct
没有接受任何参数的init方法,因为所有变量都被分配了一个空字符串
您只需要更改属性的定义,这样它们就不会被指定默认值
struct songStruct {
let artist: String
let title: String
let imgUrl: String
let previewUrl: String
}
首先,
SongStruct
应该以大写字母开头
第二,只有当所有成员没有默认值时,才会创建隐式memberwise初始值设定项:
struct SongStruct {
let artist : String
let title : String
let imgUrl : String
let previewUrl : String
}
否则您必须自己添加它,但是属性必须声明为var
:
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
}
}
为歌曲指定一个空标题(例如)有意义吗?