Поэтому я пытаюсь создать NSMutableArray
, который может обновляться, когда другой viewcontroller ввел значения.
Этот другой view-контроллер является нашим "AddNewViewController".
AddNewViewController.swift
nameArray.add(namestring)
minutesArray.add(minutesint!)
print(nameArray)
print(minutesArray)
UserDefaults.standard.set(nameArray.mutableCopy(), forKey: "namearray")
UserDefaults.standard.set(minutesArray.mutableCopy(), forKey: "minutesarray")
UserDefaults.standard.synchronize()
NameArray не имеет значения, использует введенную строку и добавляет ее в наш массив имен.
Проблема заключается в minutesArray
: я установил Int
(minutesint
) для minutesArray
, который вводится через UITextField
и конвертируется в int. Затем это помещается в наш UserDefaults
для использования в нашем другом viewcontroller, ViewController
ViewController.swift
nameArray = UserDefaults.standard.mutableArrayValue(forKey: "namearray")
minutesArray = UserDefaults.standard.mutableArrayValue(forKey: "minutesarray")
let myCell = UITableViewCell()
myCell.textLabel?.text = ("Name: \(nameArray[indexPath.row] as! String) Score (minutes): \(minutesArray[indexPath.row] as! Int)")
return myCell
Я должен уточнить, что выше мое объявление cellForRowAt. Как вы можете видеть, это все отлично подходит для нашего табличного представления.
Однако, когда я пытаюсь использовать подсказки из других вопросов, таких как использование «Reduce» для NSArray
, чтобы суммировать все элементы Я получаю эту ошибку из этого фрагмента кода:
let sumarray = minutesArray.reduce(0, +)
//Error: Ambiguous reference to member '+'
Я понимаю, что что-то не так с моим форматированием, потому что, когда я тестировал его с неизменяемым массивом вроде
let array = [1, 2 ,3]
let testarray = array.reduce(0, +)
print (testarray)
Это дает мне красивый, сексуальный принт 5?
Когда я проверил тип, который является массивом , это, очевидно, тип [Int]
. Тем не менее, я думал, что уменьшить можно было использовать только на Array
с?
Что я делаю не так?
Кто-нибудь может указать мне правильное направление?