2013-04-14 9 views

답변

1

옛날에는 ... 처음 사용한 경우 releasearr이 필요했습니다.

두 번째는 autoreleased 개체를 릴리스합니다.

이제 ARC에서 컴파일러가 자동으로 변환합니다.

혜택 : arrayWithObjects:은 간결하며 하나의 추가 메서드 호출이 필요하지 않습니다.

+0

을 사용하십시오. 더 간결하지만 조합을위한 편리한 함수이기 때문에 추가 메서드 호출을 호출합니다 'alloc'과'initWithObjects :'에 대해서 설명합니다. – gaige

+0

그러면 ARC에서 둘 다 같은 의미입니다. 맞습니까? @Anoop Vaidya – liza

+1

@liza : 궁극적으로 둘 다 같은 결과로 끝납니다. 하지만 하나는 클래스 메소드이고, 다른 하나는 인스턴스 메소드입니다. 때로는 배열 인스턴스가 필요 없지만 사전에 사용하는 경우가 있습니다. 그럼 당신은 클래스 메서드와 함께 간다. 나는 네가 나를 데려 간다고 생각해. –

1

첫 번째 문장에서 생성 된 인스턴스의 소유자이므로 다른 사람은 그렇지 않습니다 (배열은 자동으로 해제됩니다). 생성 된 인스턴스의 소유자이므로 ARC을 사용하지 않으면 해제해야합니다. (뒤에서 allocinitNSArray 구현에 의해 호출 됨)

2

두 번째는 자동 변환 된 배열을 반환하는 편리한 방법이며, 첫 번째는 메모리 관리가 필요합니다. ARC에서 이것들은 동일하고 배열 리터럴 모두가 아마도 필요한 것보다 자세한 것이므로 @[@"Liza", @"Lipi", @"Rose"] 대신

+0

고맙지 만 배열 리터럴이 xcode 4.4+ – liza

+0

에 존재합니다. 4.4 사용하지 않은 이유는 거의 6 개월이었습니다. – wattson12

관련 문제