Daily iOS
메모리·ARC

루프 안 autorelease 누적

데이터 5,000건 이하에서는 잘 돌던 for 루프가 그 이상에서는 메모리 경고 후 크래시합니다. 루프 안에서는 문자열을 잘라 붙이고 String(format:)·NSData 변환을 반복합니다. 힌트는 'autorelease'입니다. 원인을 설명하세요.

면접관은 이 답을 어떻게 들을까요? 넘어갈지, 더 물어볼지, 떨어뜨릴지 알려 주고, 걸리는 문장은 콕 집어 줘요. 점수는 그대로예요.
짧은 답 보기

루프에서 생성되는 Foundation 임시 객체가 autorelease 풀에 쌓여 현재 RunLoop 턴이 끝날 때까지 풀에 머물러 피크 메모리가 건수에 비례해 커진다. 순수 Swift 값은 스코프 끝에서 바로 사라지지만 ObjC 브리징을 거치는 값은 풀에 들어간다.

받은 질문 공유