Почему моя функция Swift задает мне неправильные переменные
1 Léonard Bonfils [2016-03-11 02:05:00]
Я создал структуру и функцию внутри нее, и я не понимаю, почему он спрашивает меня о неправильных параметрах, когда я пытаюсь назвать это. Вот мое объявление функции:
struct UserInterfaceVariables {
func applyCustomAnimation(view: AnimatableView, animationType: String, duration: Double, delay: Double, damping: CGFloat, velocity: CGFloat, force: CGFloat) {
view.animationType = animationType
view.duration = duration
view.delay = delay
view.damping = damping
view.velocity = velocity
view.force = force
}
}
И в другом представлении контроллера, я пытаюсь его вызвать, он запрашивает у меня параметр "UserInterfaceVariables", но это не тот тип параметра, который я хочу ввести... Я хочу ввести параметры из объявления моей функции (" animationType "и т.д.)
UserInterfaceVariables.applyCustomAnimation(UserInterfaceVariables)
Обратите внимание, что запись "UserInterfaceVariables" (в круглых скобках) является типом ожидаемого параметра... т.е. Это выглядит так, как на Xcode:
Почему это не спрашивает меня о параметрах, объявленных в определении моей функции?
EDIT 1 Ориентировочное решение:
let userInterfaceVariables = UserInterfaceVariables()
applyCustomAnimation(view: ..., .....)
ios swift
2 ответа
3 Решение EridB [2016-03-11 02:24:00]
вопрос
Вы вызываете метод экземпляра из типа. Прочитайте больше
Решение
Либо создайте экземпляр структуры, как указано в iGongora, либо отметьте свой метод как static
static func applyCustomAnimation(view: AnimatableView, animationType: String, duration: Double, delay: Double, damping: CGFloat, velocity: CGFloat, force: CGFloat) {
view.animationType = animationType
view.duration = duration
view.delay = delay
view.damping = damping
view.velocity = velocity
view.force = force
}
Теперь вы сможете правильно вызвать метод с помощью вашего текущего кода
ура
2 iGongora [2016-03-11 02:13:00]
Это потому, что вам нужно инициализировать структуру перед ее использованием и параметр говорит вам. После того, как вы запустите свою структуру, параметры изменятся.
Попробуйте let userInterface = UserInterfaceVariables() а затем userInterface.applyCustomAnimation(yourParameters)
