不确定是否使用类方法或实例方法来创建NSarray ....我的意思是有很多方法可以创建它们...... 对不起ios开发新手。
答案 0 :(得分:4)
如果您使用ARC,则没有区别。例如,这两行返回相同的内容:
[[NSArray alloc] initWithObject:myObject];
[NSArray arrayWithObject:myObject];
唯一的区别是后者返回一个自动释放的对象,如果使用ARC,则必须以与另一个对象相同的方式处理。如果没有,您应该将retain
添加到第二行代码,以防您想要返回对象的所有权。
答案 1 :(得分:0)
您可以使用任何编程语言创建NSArray或字符串,即分配内存 - >将实例变量初始化为您想要的某个状态。
你可以为例如..
创建数组NSArray * myArray = [[NSArray alloc] init];
现在你也可以使用其他类方法,让我们以NSString为例。 NSString * myString = [NSString stringwithformat:@“%@ - 这是我的字符串 - %@”,@“< - ”,@“ - >”];
现在使用ARC,它没有什么区别,因为ARC将负责释放创建的对象,因为类方法通常是自动释放的。
答案 2 :(得分:0)
基本上有三种方法可以获得,例如NSArray:
[NSArray alloc]
是对NSArray的类方法的调用,然后生成的对象为init..
步调用一种特殊形式的实例方法。[NSArray arrayWithSomethingOrAnother..]
。这将在NSAArray上调用一个类方法,该方法在内部执行alloc / init(带有一些扭曲),然后根据需要“填充”对象。[someObject arrayByDoingSomething..]
。这是一个返回NSArray的某个对象(可能是也可能不是NSArray对象)的实例方法。实际上并没有太多的情况,(2)和(3)之间存在重叠 - 不能想到NSArray的任何副作用,尽管有类似的NSString函数。尽管纯粹主义者可能更喜欢旧的alloc / init与arrayWith...
类方法,但实际上并不需要在ARC环境中对NSArray使用alloc / init(尽管它仍然在手动引用计数环境中占有一席之地) )。