본문 바로가기

Development/IOS & Mac

iOS @autoreleasepool 사용하기

@autoreleasepool 키워드는 메모리를 효율적으로 관리하고 싶을 떄 사용하면 좋을 듯하다.


만약 아래와 같은 코드가 있다고 하자 그러면 for문이 끝난 시점에서 메모리를 해제를 할 것이다.


for (/* a long time */) {
        NSMutableString *s = [NSMutableString string];
        // ...
    }


위의 코드에 @autoreleasepool 를 사용한 코드를 보자


for (/* a long time */) {
        @autoreleasepool {
            NSMutableString *s = [NSMutableString string];
            // ...
        }//여기서 메모리 해제가 됨
    }


이제 autoreleasepool로 인해 for문이 끝난 시점이 아닌 즉시 메모리를 해제를 하기 시작한다. 그래서 무거운 루프 작업을 할 때 메모리를 효율적으로 관리 할 수 있다.