Ios Objective-C:如何判断类方法是否在

Ios Objective-C:如何判断类方法是否在,ios,objective-c,macos,cocoa,Ios,Objective C,Macos,Cocoa,如何判断类方法是否allocs并初始化对象?例如 NSArray *theArray = [NSArray array]; NSArray *anotherArray = [[NSarray alloc] init]; 使用这两者有什么区别?它们不是都创建了一个空数组吗 NSCalendar *theCalendar = [NSCalendar currentCalendar]; NSCalendar *anotherCalendar = [[NSCalendar alloc] init];

如何判断类方法是否allocs并初始化对象?例如

NSArray *theArray = [NSArray array];
NSArray *anotherArray = [[NSarray alloc] init];
使用这两者有什么区别?它们不是都创建了一个空数组吗

NSCalendar *theCalendar = [NSCalendar currentCalendar];
NSCalendar *anotherCalendar = [[NSCalendar alloc] init];

如何知道在创建对象时使用哪一个?

如果启用了ARC,则没有区别

[NSArray阵列]是一种方便的方法。它分配一个数组对象,初始化它并将该对象标记为自动释放(后者是在禁用自动引用计数时)。许多对象提供这些类型的方法来创建实例。查阅API文档,了解您感兴趣的类是否提供了alloc init-(autorelease)快捷方式,或者它是否有更适合您需要的创建或初始化方法。使用它们-它们更短,代码更容易阅读,不需要担心ARC是否打开或关闭。为自己的类编写类似的方法

如果需要在init函数中传递参数,请使用特定的alloc init。例如

NSMutableArray ary = [[NSMutableArray alloc] initWithCapacity:50];
甚至更好

NSMutableArray ary = [NSMutableArray arrayWithCapacity:50];

同样,在ARC之前,当需要控制实例引用计数时,alloc init对非常有用

归结到以下命名约定和阅读文档。