2016-07-29 73 views
-1

我有一个充满歌曲和歌词的sqlite数据库,我试图检索并将它们存储在一个数组中。我宣布类似下面在结构数组中存储值

struct KArray { 
let SongTitle: String 
let SongLyrics: String 
let ESongTitle: String 


func match(string:String) -> Bool { 
    let lowerCaseKeyword = string.lowercaseString 
    return SongTitle.lowercaseString.containsString(lowerCaseKeyword) || ESongTitle.containsString(lowerCaseKeyword) 

    } 
} 


var keerthanaiArray = [KArray]() 

数组,我填充从SQLite表读出该数组像下面

keerthanaiArray = [KArray(SongTitle : songTitleT!, SongLyrics : songLyricsT!, 
        ESongTitle : EsongTitleT!)] 

但它没有得到存储阵列,只有最后一项是存储。请协助

+1

更换'keerthanaiArray = [KArray(...)''通过keerthanaiArray.append(KArray( ...))'。 - 但是你的名字是误导性的,'KArray'不是一个数组。 –

回答

0

正如@Martin提到的,您的KArray是一个结构体,而不是一个数组。

如果你想keerthanaiArray要与你的KArray结构的值的数组,试试这个:

var song: KArray // initialize struct here 
var keerthanaiArray = [String]() 
keerthanaiArray = [song.SongTitle, song.SongLyrics, song.ESongTitle] 
+0

我很抱歉,当您提到'initialize struct here'时,我并没有明白。请您详细说明 – Jebus

+0

您必须为结构中的属性(即SongTitle,SongLyrics,ESongTitle)设置值以使其有用。请参阅[本网站]上的** Initializers **部分(https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Initialization.html)。 –

+0

我建议在结构体内部创建一个自定义初始化程序,您可以从结构体外部调用该初始化程序。 –