Swift programming question from my son

Steve Sisak steve.sisak at ioxperts.com
Sat Oct 10 13:59:31 EDT 2015


Not as good as MPW C ;-)

http://www.ralentz.com/old/mac/humor/mpw-c-errors.html


> On Oct 10, 2015, at 12:38 PM, Steve Caine <scaine at mac.com> wrote:
> 
> C++ was notorious for obscure compiler errors; 10-15 lines of error message that had to be boiled down as text (using find/replace in a text editor) to reveal you were trying to assign to a const object. Perhaps the compilers are better these days.
> 
>> Steve Caine
> http://www.linkedin.com/in/stevecaine
> 
>> On Oct 10, 2015, at 12:09 PM, John Shockey <john at johncshockey.com> wrote:
>> 
>> Owen,
>> 
>> I haven't done a lot with Swift, since my current project predates the
>> language. I can't make a lot of sense of the error message. It's a
>> pretty bad one!
>> 
>> But I can see where the difference between the two versions would
>> matter.
>> 
>> if label.userData != nil
>> {
>> // ...
>> }
>> 
>> tells you that userData won't be nil within the braces. But
>> 
>> if var userData = label.userData
>> {
>> // ...
>> }
>> 
>> tells both you AND the compiler that it isn't nil
>> 
>> So in their version userData is typed as a dictionary, but in your son's
>> version label.userData is still typed as an optional dictionary.
>> 
>> Seems pretty academic, but in fact another thread could set
>> label.userData to nil, but the "if var" would be protected. But the real
>> point is about the types.
>> 
>> Possibly (but I have not done a lot with Swift, remember, so I'm a
>> little unsure of the syntax) adding a couple of "!" operators would make
>> his version work. Maybe:
>> 
>> label.userData!["bounceCount"] = (label.userData!["bounceCount"] as!
>> Int) + 1
>> 
>> but don't quote me on that without checking it!
>> 
>> My feeling is that comparing something to nil in Swift may be legal, and
>> sometimes work, but it kind of goes against the grain of the language.
>> 
>> John
>> 
>> _______________________________________________
>> MacTechGroup-discuss mailing list
>> MacTechGroup-discuss at lists.mactechgroup.org
>> http://lists.mactechgroup.org/mailman/listinfo/mactechgroup-discuss
> 
> _______________________________________________
> MacTechGroup-discuss mailing list
> MacTechGroup-discuss at lists.mactechgroup.org
> http://lists.mactechgroup.org/mailman/listinfo/mactechgroup-discuss



More information about the MacTechGroup-discuss mailing list