verbDatabase Table 我使用的数据如下所示,也在上面的屏幕截图中显示:
+----+------------+------------+------------+
| id | infinitive | ind pre je | ind pre tu |
+----+------------+------------+------------+
| 1 | aimer | aime | aimes |
| 2 | aller | vais | vas |
| 3 | courir | cours | cours |
| 4 | servir | sers | sers |
| 5 | mourir | meurs | meurs |
| 6 | dormir | dors | dors |
| 7 | sentir | sens | sens |
| 8 | vêtir | vêts | vêts |
| 9 | fuir | fuis | fuis |
| 10 | tenir | tiens | tiens |
+----+------------+------------+------------+
我是编码的新手,正在开发一个法语结合应用程序,通过显示不定式动词(verbLabel.text)和所需时态(to tenseLabel.text)来测试用户的共轭。目标是让用户输入(到userInput.text)该动词的共轭形式并按下按钮(checkAnswer)来检查他们的答案。如果答案是正确的,将生成一个新的动词,等等。
我有一个名为verbDatabase
的CoreData实体,其属性名为id
,infinitive
,indPreJe
和indPreTu
。
我设法生成一个随机行(显示一个随机动词),但我在生成随机属性(indPreJe或indPreTu)时遇到了麻烦。要生成随机属性,并且因为属性名称必须以小写字母开头,我不能使用与生成随机行相同的方法。
为了解决这个问题,我尝试创建一个包含属性名称的数组,然后生成一个随机数,然后将属性名称附加到tenseLabel.text中显示的获取请求,但tenseLabel.text显示字符串{{1而不是"verbDatabase[0].indPreJe"
的值。
有没有办法让文本标签在附加随机属性名称而不是字符串指向该值后显示该值?
如果我以低效的方式处理我的数据,是否有更好的方法将我的数据存储到Core Data中,以便我能够更好地使用我想要做的事情来访问它?我仍然试图围绕核心数据结构。我还考虑将动词保存为单独的词典,将时态作为其键,将共轭形式作为其对应的值。
理想情况下,我希望能够允许用户选择他们想要测试的时态,并对动词进行分类 - 常规形式,不规则形式,普通动词等。
提前感谢您的帮助!
verbDatabase[0].indPreJe
答案 0 :(得分:0)
有没有办法让文本标签在附加随机属性名称而不是字符串指向该值后显示该值?
是的,您可以使用value(forKey:)
(请参阅the documentation here):
var columnName = columnNames[currentColumn]
tenseLabel.text = verbDatabase[currentRow].value(forKey:columnName)