Swift 1.2 was an interim release that fixed some early confusions and annoyances in the language. Its changes weren't big, but they did help clean up and clarify Swift, and helped tide us all over until the release of Swift 2.
The important changes are:
You can now check and unwrap multiple optionals using if/let rather than create a so-called "pyramid of doom" with nested statements.
Many Objective-C types that were being passed around now had correct nullability values set. This was done by modifying Objective-C then having many people scour through existing Apple code to add new annotations.
Downcasting (a typecast from a higher type in your class hierarchy to a lower type) is now done using as! and as? to mark forced downcasting and optional downcasting respectively.
Swift strings, arrays and dictionaries now no longer automatically typecast to NSString, NSArray and NSDictionary.
A new Set data type was introduced to handle arrays where each value can appear only once.
Constants can now be declared without a value, as long as they are provided with a value before they are used.
Incremental build support was added, which makes it more efficient to build larger Swift projects.