I'm still fairly new to the language, but it looks like the @ specifies that the variable being passed/created is an NSObject, or a compiler directive.
As mentioned above, if you use it like this:
@"someText"
you're instantiating an NSString object, and setting the text of that object to someText. If you look at a good ol' C-style format specifier such as:
..."This is some text, and this is a float: %f", myFloat);
You're creating some text and telling the compiler to put the floating point string representation of myFloat into the string. %@ is a format specifier, just like %f, %d, %c, %s and any other format specifier you're used to. However, if you use %@ as follows:
... "This is some text, and this is an object:%@", myObject];
What you're doing is (I believe) telling the compiler that myObject is an object, and that you want it to include the output of the description method (ie. [myObject description]) in the string that you're creating.