我正在学习快速的习惯,过去两周课程的使用让我很忙。
感谢您的帮助
对于xcode中的项目我创建了一个swift文件,其中包含一个初始化空字符串/字符串数组的类。 那么该类中的一个函数就是从google firebase中检索数据以填充这些字符串。
比在viewcontroller类中想要检索那两个字符串。怎么做对了? 到目前为止,我尝试了许多不同的想法,但我要么得到空字符串(在课程开头初始化)或我得到错误
理想情况下,每次调用viewcontroller类的viewdidload()(在本例中)时,我都希望它使用uptodate数据创建类的实例。
class RetrieveDatabase {
//static let sharedInstance = RetrieveDatabase()
var allMessages = [[String]]()
var messages = [String]()
var categorieNames = [String]()
func loadGoogleValue() -> (allMessages: [[String]], categorieNames: [String]) {
//this function works, the arrays contain type [string] and string
return (self.allMessages, self.categorieNames)
}
/*
-> i tried initializers in so many variations...
init(allMessages: [[String]], categorieNames: [String]) {
self.allMessages = loadGoogleValue().allMessages
self.categorieNames = loadGoogleValue().categorieNames
messages = []
}
*/
}
这里来自viewcontroller类的代码:
class SettingsView: UIViewController {
let retrieveDatabase = RetrieveDatabase.//tried everything here, only errors
override func viewDidLoad() {
super.viewDidLoad()
label1.text = retrieveDatabase.categorieNames[0]
}
}
答案 0 :(得分:0)
我已将您的代码简化为您可以在操场上轻松尝试的内容。如果你从一个有效的版本开始,也许你可以看到它和给你带来麻烦的那个之间的区别。
class RetrieveDatabase {
var allMessages = [[String]]()
var messages = [String]()
var categorieNames = [String]()
init() {
messages.append("Hi")
messages.append("Hello")
allMessages.append(messages)
categorieNames.append("SALUTATIONS")
}
func loadGoogleValue() -> (allMessages: [[String]], categorieNames: [String]) {
return (self.allMessages, self.categorieNames)
}
}
class SettingsView {
let retrieveDatabase = RetrieveDatabase()
func caller() {
print(retrieveDatabase.loadGoogleValue().allMessages)
print(retrieveDatabase.loadGoogleValue().categorieNames)
}
}
let test = SettingsView().caller()
由于我所做的事与您在上述评论中添加的代码之间的差别非常小,我怀疑它是关于如何添加字符串而忽略的事情到数组。