2014-01-20 2 views
0
NSString *pDescText = @"blablabla"; 
pDescText = [NSString stringWithFormat:@"%@ %@",skProduct.localizedDescription,formattedPrice]; 

2 번 줄에서 pDescText를 재 할당 할 때 메모리 누수가 발생합니까?NSString이 메모리 누수입니까?

답변

4

ARC를 사용하는 경우 이러한 종류의 누출에 대해 걱정할 필요가 없습니다.

당신은 newallocretain 또는 copy를 포함하는 메시지를 전송하여 당신은이에 대한 참조를받은 객체를 해제해야합니다 당신은 MRC를 사용하는 경우 때문에

, 당신은 누출이 없습니다. 이 두 가지 중 어느 것도 당신이 이것을하지 않았으므로 pDescText에 대한 소유 참조가 없습니다. 또한, 첫 번째 줄에서 문자열 리터럴을 사용하고 있는데, 이것은 메모리 관리에 대해 걱정할 필요가없는 것입니다.

그리고 나는이 말을해야만한다. pDescText은 코코아에서 변수에 사용할 좋은 이름이 아니다. 우리는 헝가리 표기법을 사용하지 않습니다 (따라서 포인터가 필요하지 않음을 나타내는 p). 전체적이고 설명적인 변수 이름이 표준입니다. 따라서 pDescText 대신 경험이 풍부한 코코아 개발자는 descriptiveText 또는 심지어 productDescription 또는 description을 사용할 것입니다.

+1

이 답변을 보는 다른 초보자를 돕기 위해 질문에 대답 할 때 약간의 보석 (re : 변수 이름)을 얻는 것이 좋습니다. –

+0

약간의 니모닉을 사용합니다. * N * -ot * ARC *이면 NARC * (* N * ew, * A * lloc, * R * etain, * C * opy)를 해제하십시오. 그 단어가 보이지 않는다면, 해제에 대해 걱정할 필요가 없습니다. –

+0

'new & alloc & retain & copy'라고 쓰여진 티셔츠를 갖고 싶었습니다; 유명한 [Beatles 티셔츠] (http://www.experimentaljetset.nl/archive/john-paul-ringo-george)처럼 – Abizern

0

아니요, NSString 편의 생성자는 자동 렌더링 된 객체를 반환합니다.

관련 문제