swift - Build WatchOS Apps: Develop and Design -


i trying run sample code book build watchos: develop , design. following segment of code returns 2 errors:

@ibaction func buttontapped(){         if animating {             spinnerimage.stopanimating()             animating = false             animatewithduration(0.2, animations: updatebuttontostopped())         } else {             spinnerimage.startanimating()             animating = true             animatewithduration(0.2, animations: updatebuttontogoing())         }      } 

both errors occur in calls animatewithduration() , indicate there type conflict. ideas of how can fix this?

in hurry?

instead of calling animatewithduration so:

animatewithduration(0.2, animations: updatebuttontostopped()) 

you'd give updatebuttontostopped function parameter so:

animatewithduration(0.2, animations: updatebuttontostopped) 

notice () after updatebuttontostopped gone.

and same goes updatebuttontogoing of course :)

why?

if @ documentation animatewithduration, (which can see swift 3 version of here) can see signature looks this:

func animate(withduration duration: timeinterval, animations: @escaping () -> void) 

the animations interesting part here.

() -> void 

means animations takes function, must contain no parameters , returns void.

in case call so:

animatewithduration(0.2, animations: updatebuttontostopped()) 

but...when use updatebuttontostopped(), saying is, "call updatebuttontostopped() , use the output of animations parameter". not compiler expects, expects, saw, function, taking no parameters , returning void.

so when say:

animatewithduration(0.2, animations: updatebuttontostopped) 

without parentheses means not invoke updatebuttontostopped, pass animate parameter.

hope helps you.


Comments

Popular posts from this blog

javascript - Thinglink image not visible until browser resize -

firebird - Error "invalid transaction handle (expecting explicit transaction start)" executing script from Delphi -

mongodb - How to keep track of users making Stripe Payments -