2016-07-29 72 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

我建議在結構體內部創建一個自定義初始化程序,您可以從結構體外部調用該初始化程序。 –