#swift
#swift
Вопрос:
Я создаю приложение, в котором я хочу добавить значение двух UILabels и показать результат в третьей UILabel. Я пытался это сделать Int(totalOwed.text) = Int(numOfBoxesDelivered.text) - Int(numOfBoxesReturned.text)
, но XCode выдает ошибку, сообщающую мне, что «Тип выражения неоднозначен без дополнительного контекста». Как я мог это исправить?
Комментарии:
1.
Int(totalOwed.text) =
, это совершенно неправильно. Подумайте об этом, какой тип является результатом вычитания и какой тип ожидает метка?2. Разве результат вычитания не является Int ? Мое рассуждение заключается в том, что я конвертирую оба текста для numOfBoxesDelivered и numOfBoxesReturned в целые числа, поэтому текст для totalOwed также должен быть преобразован в Int . Верно?
3. Ну да, но вы не можете преобразовать свойство из string в int и присвоить ему значение. По сути, вы пишете что-то вроде 0 = 5 — 3. Разделите его на два оператора: один для выполнения вычитания, а другой для присвоения результата вычитания метке.
4. Думаю, я понимаю, что вы имеете в виду. Однако, если я попытаюсь сделать что-то вроде
let result = Int(numOfBoxesDelivered.text) - Int(numOfBoxesReturned.text)
and thentotalOwed.text = "(result)"'
, Xcode по-прежнему сообщает мне, что тип выражения неоднозначен без дополнительного контекста.
Ответ №1:
Текстовые значения не являются обязательными попробуйте развернуть их, также label.text
принимает строковое значение, которое вам не нужно преобразовывать! просто используйте это, если вы уверены, что у них есть значения
totalOwed.text = (Int(numOfBoxesDelivered.text!) - Int(numOfBoxesReturned.text!)).description
если нет !
, замените правильными методами разворачивания, я рекомендую прочитать «необязательно» в документации swift
Комментарии:
1. не преобразовывайте ‘totalOwed.text =’ в целое число посмотрите на мой код еще раз удалите целочисленное преобразование из того, что вы используете установщик, и оно принимает строку, а не целое число скопируйте мой код и повторите попытку