Вы говорите, что ваш контекст находится во втором объекте, но ваш второй объект - Integer. Это может быть вашей проблемой? Кроме того, еще одно предложение - поместить ваш класс AsyncTask в качестве частного внутреннего класса для вашей деятельности - таким образом, я уверен, что у вас будет доступ к getApplicationContext ().
firstname
переменная является типом для [String]
, что означает, что она должна содержать массив строк.
В строке firstname = _1900s_boysnames_uk.randomElement()
вы присваиваете значение String
массиву строк.
Чтобы исправить это, вы можете изменить строку на firstname.append(_1900s_boysnames_uk.randomElement())
.
Вы получили эту ошибку, поскольку массив _1900s_boysnames_uk
может быть пустым, поэтому возвращаемое значение из randomElement()
также может быть nil
, для этого мы считаем возвращаемое значение optional
nil
значений, но это не лучший способ
var firstname: [String?] = []
или вы можете использовать этот синтаксис внутри вашего условия if
if let firstname = _1900s_boysnames_uk.randomElement() {
firstname.append(firstname)
}
var firstname: [String] = []
Это означает, что переменная «firstname» будет содержать список имен
и чтобы добавить новое имя в список, вы будете использовать "append" вроде:
firstname.append(_1900s_boysnames_uk.randomElement())
Если вы хотите назначить ему только имя, используйте:
var firstname: String
в Swift рекомендуется использовать именование верблюжьих соглашение при именовании переменных. Если вы не знаете о случае верблюда, это соглашение об именах, которое использует строчную букву для первого слова в имени переменной, за которым следует заглавная буква для каждого последующего слова.
BLOCKQUOTE>