Note: My question is based after checking this and the answers to it.
In some bigger methods, there are pieces of code that you only want to be alive f
What curly braces do is just to define a new scope, so you can define new variables with the same name than other outer scope variables.
The @autoreleasepool{} block is quiet similar, but also declares an autorelease pool at the beginning and drains it at the end, so it may be better from a memory footprint point of view because all the autoreleased objects declared there will be released when exiting that scope.