Is there any difference in declaring objects in Objective-C between (1) and (2), besides the style and personal preference?
(1) One-line declaration, allocation, initialization.
Student *myStudent = [[Student alloc] init];
(2) Multi-line declaration, allocation, initialization.
Student *myStudent;
myStudent = [Student alloc];
myStudent = [myStudent init];
In the second case, you can initialize the same object more than once. You send an
allocmessage to the class to get an uninitialized instance, that you must then initialize, having several ways to do it: