티스토리 뷰
요즘 일이 좀 있다보니 정신이 없는데
그 와중에 비교적(?) 간단한 오류가 나서 정리해볼까 합니다.
발생
오류 내용은 다음과 같습니다.
주로 C 나 다른 언어를 섞어 쓰는 상황에서 많이 나온다고 하네요.
(참고로 저 오류가 무더기로 떴는데 앞에 'NSAutoreleasePool' 부분만 다르고 뒤에는 다 동일했습니다.)
메세지 속에 답이 있습니다.
특정 모드에서는 저 타입을 사용할수 없다는 뜻이니
그 모드를 찾아서 꺼주시면 됩니다.
해결방법 (비권장)
오늘도 우리들의 Build Setting 으로 들어가 아래 옵션을 NO로 바꿔줍시다.
사실 코드를 수정할수있는 상황이면 아래 방법은 추천드리지 않습니다만
임시적으로 빠르게 이 문제를 해결해야 한다는 경우에만 권장드립니다.
**주의**
다만 해당 옵션이 무엇을 해주는 지는 알고 끄시는게 좋을 것 같습니다.
생각보다 중요한 일을 하는 친구입니다.
Automatic Reference Counting
- 앱 의 메모리를 자동으로 관리해주는 옵션이라 생각하시면 됩니다.
- 저희가 코드를 작성하고 별도로 free 나 메모리에 관한 코드를 넣지 않아도 인스턴스가 필요없다고 판단되면 삭제해줍니다.
그래서 애플에서는 만약 이 옵션을 정말로 끄고 싶으면 다른 방법을 제시해 줍니다.
(저는 코드를 수정하기 애매한 상황이기도 하고 다른 부분의 오류도 원인을 알아야해서 임시적으로 위 방법을 사용했습니다.)
* Apple 권장 (추천)
@autoreleasepool {
// Code benefitting from a local autorelease pool.
}
-> 보이시는 이 옵션을 사용하면 저 안에 있는 코드는 자동관리 옵션의 영향을 받지 않는다고 합니다.
-> 본인이 코드를 수정할수있는 상황이시라면 이 방법을 추천드립니다.
-> 이러면 부분적으로 옵션을 해제 시키기 때문에 메모리를 절약할 수 있습니다.
처음 보시면 당황하실 수 있지만
알고보면 간단한 편입니다.
오늘도 파이팅입니다.
'iOS개발 > 기타' 카테고리의 다른 글
[실험] Privacy manifests 를 만들어보자 - 2탄 (0) | 2024.04.15 |
---|---|
[실험] Privacy manifests 를 알아보자 - 1탄 (0) | 2024.04.03 |
Xcode 에러 : NSPOSIXErrorDomainCode: 60 (0) | 2024.02.20 |
Xcode using an empty LLDB target 오류 (0) | 2024.02.19 |
Xcode SandBox : rsync.samba deny 에러 (0) | 2024.01.11 |