2014-09-25 2 views
1

NSMutableArray에서 값을 지정하려면 먼저 초기화해야합니다.NSMutableArray의 초기화

두 가지 방법으로 초기화 할 수 있습니다. 하나는

NSMutableArray *arr = [NSMutableArray alloc] init]; 

이고 두 번째는

NSMutableArray *arr = [NSMutableArray array]; 

그리고이 두 가지 방법의 차이점은 무엇입니까? 그리고 더 나은 옵션을 사용할 수 있습니까?

+1

당신은이 [링크] (http://stackoverflow.com/questions/10474934/how-to-initialize-a-nsmutablearray-in-objective-c)로 가면 이해가 어려울 것입니다. – nikhil84

+0

[NSMutableArray 배열 \] 대 \ [\ [NSMutableArray 할당 \] 초기화 \]의 차이점] 가능한 복제본 (http://stackoverflow.com/questions/5423211/difference-between-nsmutablearray-array-vs-nsmutablearray -alloc-init) – Larme

+0

ARC를 사용하면 대부분의 경우 차이점이 없습니다. 나는 첫 번째가 좀 더 효율적이라고 생각한다. –

답변

4

비 ARC 프로젝트를 사용하는 경우 첫 번째 항목에서 배열 객체 &의 소유권을 가져야합니다.이 객체는 해제해야합니다.이 객체는 보유 된 객체 만 반환합니다. 두 번째 객체는 보유 된 자동 렌더링 된 객체를 반환합니다. 배열 객체의 소유권이 없기 때문입니다.

ARC 코드에서 사용하는 것은 중요하지 않습니다.

ARRAY CLASS을 참조하여이 SO QUESTION

0

ALLOC : NSObject의의 수업 방법. 받는 클래스의 새 인스턴스를 반환합니다.

초기화 : NSObject의 인스턴스 메소드. 새 객체 (수신기)를 할당하기위한 메모리가 생성 된 직후 새 객체 (수신기)를 초기화하기 위해 하위 클래스에서 구현됩니다.

: NSObject의 클래스 메소드. 수신 클래스의 새 인스턴스를 할당하고 초기화 메시지를 보내 초기화 된 객체를 반환합니다.

ALLOC는 + 새를 사용하는 유일한 장점은 더 간결하다는 것이다 초기화

new = alloc + init 

로 간다. 클래스의 초기화 프로그램에 인수를 제공해야하는 경우 대신 + alloc 및 -initWith ... 메소드를 사용해야합니다. 사용자 정의 초기화를 지원하지 않는 새로운


  • ALLOC - 초기화는

일반 의견 당신이 편안있어 어떤 사용해야하는 것 같다 새보다 더 명시 적입니다.

관련 문제