iphone-使用类和初始化实例的区别

问题描述

使用类和初始化实例的区别
NSArray *arr=[[NSArray alloc]initWithObjects:@"Liza", @"Lipi", @"Rose"];
NSArray *arr=[NSArray arrayWithObjects:@"Liza", @"Lipi", @"Rose"];

这两句代码执行同样的结果,但是有什么区别?每个有什么优势?

谢谢您的热心解答。

解决方案

在老一些的版本里,如果用第一个方法,需要release其中的arr

然后第二个方法中需要release一个autoreleased 对象。

现在一般在ARC中,autoreleased放在编译器中了。

优势:arrayWithObjects:用法简单不需要调用其他方法。

解决方案二:

现在一般在ARC中,autoreleased放在编译器中了。
优势:arrayWithObjects:用法简单不需要调用其他方法

时间: 2024-09-10 14:32:21

iphone-使用类和初始化实例的区别的相关文章

变量 属性-JAVA初始块中的变量与类中的成员变量区别

问题描述 JAVA初始块中的变量与类中的成员变量区别 class Demo{ { a = 4; } int a = 6; public static void main(String[] args){ System.out.println(new Demo().a); } } 两个a是同一个变量吗? 解决方案 是同一个变量. 初始化块中指定的变量a的初始值每次都会被定义时指定的变量a的值所覆盖,因为定义变量时指定的初始值和初始化块中指定的初始值的执行顺序,跟它们在源程序中的排列顺序相同. 详细可

java 初始化-Java类的初始化顺序问题

问题描述 Java类的初始化顺序问题 一般在Java对象能够调用方法之前,此类中的成员变量就已经初始化完毕,那如果这个成员是匿名内部类呢?也会等到这个匿名内部类中的代码全部跑完吗? 解决方案 Java初始化顺序1在new B一个实例时首先要进行类的装载.(类只有在使用New调用创建的时候才会被java类装载器装入)2,在装载类时,先装载父类A,再装载子类B3,装载父类A后,完成静态动作(包括静态代码和变量,它们的级别是相同的,安装代码中出现的顺序初始化)4,装载子类B后,完成静态动作类装载完成,

java 笔试题-网易类的初始化的笔试题

问题描述 网易类的初始化的笔试题 public class Father { public static String desc = "Father"; static { System.out.println(desc); } Father(){ System.out.println("Father Constructor"); } String str = fun(); public String fun(){ System.out.println("F

抽象类-System.in输入流问题,in类成员属性实例化成为了InputStream

问题描述 System.in输入流问题,in类成员属性实例化成为了InputStream java中在System类中in字段被声明为InputStream类的实例化对象,但是InputStream类为抽象类 应该是无法别实例化的,为什么在System类中被实例化了呢? 解决方案 在System类中是这样定义in的. public final static InputStream in = nullInputStream(); nullInputStream是这样实现的: private sta

个人写的PHP验证码生成类分享_php实例

此验证码类直接拿去就可以用,也可以参考! 其中类成员codestr是生成的验证码字符串: <?php /** * 验证码 */ class Code{ // 1. 定义各个成员 有宽.高.画布.字数.类型.画类型 private $width; //宽度 private $height; //高度 private $num; //验证码字数 private $imgType; //生成图片类型 private $Type; //字串类型 1,2,3 三个选项 1 纯数字 2 纯小写字母 3 大小

c++-C++类构造函数初始化列表

问题描述 C++类构造函数初始化列表 #include using namespace std; class A { private: int n1; int n2; public: A() { n2=0; n1=n2+2; }//输出结果为:n1:2, n2: 0 A():n2(0),n1(n2+2){}//输出结果为n1:-858993458, n2: 0 //上面这两种方式有啥区别,求指导,为啥结果不一样 void Print(){ cout << "n1:" <

跟老齐学Python之编写类之一创建实例_python

说明:关于类的这部分,我参考了<Learning Python>一书的讲解. 创建类 创建类的方法比较简单,如下: 复制代码 代码如下: class Person:  注意,类的名称一般用大写字母开头,这是惯例.当然,如果故意不遵循此惯例,也未尝不可,但是,会给别人阅读乃至于自己以后阅读带来麻烦.既然大家都是靠右走的,你就别非要在路中间睡觉了. 接下来,一般都要编写构造函数,在写这个函数之前,先解释一下什么是构造函数. 复制代码 代码如下: class Person:     def __in

c#类的初始化顺序

本文转载:http://www.cnblogs.com/ybhcolin/archive/2010/09/24/1834219.html c#类的初始化顺序 类在初始化时的执行顺序,依次如下: 1: 子类静态变量 2: 子类静态构造函数 3: 子类非静态变量 4: 父类静态变量 5: 父类静态构造函数 6: 父类非静态变量 7: 父类构造函数 8: 子类构造函数   对于静态变量与静态构造函数而言, 无论对一个类创建多少个实例,它的静态成员都只有一个副本. 也就是说,静态变量与静态构造函数只初始

[Java] 方法锁、对象锁和类锁的意义和区别

版权声明:请尊重个人劳动成果,转载注明出处,谢谢! 目录(?)[+] 首先的明白Java中锁的机制 synchronized  在修饰代码块的时候需要一个reference对象作为锁的对象.  在修饰方法的时候默认是当前对象作为锁的对象.  在修饰类时候默认是当前类的Class对象作为锁的对象.   线程同步的方法:sychronized.lock.reentrantLock分析 方法锁(synchronized修饰方法时) 通过在方法声明中加入 synchronized关键字来声明 synch