NSString *pDescText = @"blablabla";
pDescText = [NSString stringWithFormat:@"%@ %@",skProduct.localizedDescription,formattedPrice];
2 번 줄에서 pDescText를 재 할당 할 때 메모리 누수가 발생합니까?NSString이 메모리 누수입니까?
NSString *pDescText = @"blablabla";
pDescText = [NSString stringWithFormat:@"%@ %@",skProduct.localizedDescription,formattedPrice];
2 번 줄에서 pDescText를 재 할당 할 때 메모리 누수가 발생합니까?NSString이 메모리 누수입니까?
ARC를 사용하는 경우 이러한 종류의 누출에 대해 걱정할 필요가 없습니다.
당신은 new
alloc
retain
또는 copy
를 포함하는 메시지를 전송하여 당신은이에 대한 참조를받은 객체를 해제해야합니다 당신은 MRC를 사용하는 경우 때문에
, 당신은 누출이 없습니다. 이 두 가지 중 어느 것도 당신이 이것을하지 않았으므로 pDescText
에 대한 소유 참조가 없습니다. 또한, 첫 번째 줄에서 문자열 리터럴을 사용하고 있는데, 이것은 메모리 관리에 대해 걱정할 필요가없는 것입니다.
그리고 나는이 말을해야만한다. pDescText
은 코코아에서 변수에 사용할 좋은 이름이 아니다. 우리는 헝가리 표기법을 사용하지 않습니다 (따라서 포인터가 필요하지 않음을 나타내는 p). 전체적이고 설명적인 변수 이름이 표준입니다. 따라서 pDescText
대신 경험이 풍부한 코코아 개발자는 descriptiveText
또는 심지어 productDescription
또는 description
을 사용할 것입니다.
아니요, NSString
편의 생성자는 자동 렌더링 된 객체를 반환합니다.
이 답변을 보는 다른 초보자를 돕기 위해 질문에 대답 할 때 약간의 보석 (re : 변수 이름)을 얻는 것이 좋습니다. –
약간의 니모닉을 사용합니다. * N * -ot * ARC *이면 NARC * (* N * ew, * A * lloc, * R * etain, * C * opy)를 해제하십시오. 그 단어가 보이지 않는다면, 해제에 대해 걱정할 필요가 없습니다. –
'new & alloc & retain & copy'라고 쓰여진 티셔츠를 갖고 싶었습니다; 유명한 [Beatles 티셔츠] (http://www.experimentaljetset.nl/archive/john-paul-ringo-george)처럼 – Abizern