在objective-c中,除了风格和个人偏好之外,在(1)和(2)之间声明对象有什么区别吗?
(1)单行申报、分配、初始化。
Student *myStudent = [[Student alloc] init];
(2)多行申报、分配、初始化。

Student *myStudent;
myStudent = [Student alloc];
myStudent = [myStudent init];

最佳答案

在第二种情况下,可以不止一次地初始化同一个对象。向类发送一个alloc消息以获得一个未初始化的实例,您必须初始化它,有几种方法来完成:

NSString *myStr = [NSString alloc];
NSString *str1 = [myStr init]; //Empty string
NSString *str2 = [myStr initWithFormat:@"%@.%@", parentKeyPath, key];

10-08 05:36