As everyone is no doubt aware Swift 2 was announced at WWDC. I'm going to do a series of posts on the changes but for now let's just cover the major points:
- Global and free-standing functions now follow the same parameter label rules as methods. The
#external name syntax is gone.
- . . .
Reabstraction eats the world
This is an update on a previous post.
First, @jckarter pointed out that
swift_func_object is an artifact of the implementation. Swift is reabstracting the function to promote it to the most generic form (it's how a
()->Int can be passed to something expecting
()->Void). It turns out that Swift lifts functions to the . . .
Don't do this. Seriously.
Edit: There are some important developments, please make sure you check them out.. You shouldn't have tried to use this code before but now it's just completely unnecessary.
This is horrible and you should never never do this under any circumstances. There are plenty of bear traps in software engineering. . . .
Use this one weird trick
Swift has a variety of little documented (or undocumented) attributes just sitting there waiting to be used. Let's look at a few of them:
This attribute gives the compiler inlining hints. The valid values are
never. I don't think I'd use this one (especially
__always) unless I was absolutely . . .
I just wanted to add my name to the list.
At home, I can almost never successfully make AirDrop work between my iOS devices and Mac, or between my wife's Mac and mine. It is so . . .
My Personal Hell
If you find yourself suffering from the message
A signed resource has been added, modified, or deleted every time you attempt to run your app on-device I hope I can save you some trouble.
This tends to happen to projects with extensions and the culprit appears to be CocoaPods. Somehow frameworks relevant to the main app were being . . .
There is no escape
Update: This has been fixed!
Just in case others run into this issue, I wanted to document it here.
@noescape causes some curious behavior when nesting closures. It appears to cause a captured mutable local to become a separate copy, meaning changes that should be visible in one sibling closure aren't visible to the other.
. . .