앱 사용 중에 끊임없이 메모리 사용량이 증가한다는 것을 제외하고는 잘 실행되는 largish objective-c iPhone 프로젝트가 있습니다. 앱이 활발하게 사용되지 않는 동안 증가하지 않습니다.Objective-C 인스턴스 변수 메모리 문제 (ARC 사용시)
Java에서이 문제가없는 거의 동일한 Android 앱이 있습니다. 인터넷 검색 및 실험을 많이 한 후에는 모든 클래스 변수가 인스턴스 변수라고 생각합니다. 즉, 아래의 .m 파일에서 선언되고 getters 및 setter를 사용하여 액세스됩니다.
@implementation SomeClass{
NSString *someVariable;
AnotherClass *anotherVariable;
}
두 개의 개체가 인스턴스 변수를 통해 서로 참조되는 경우가 많습니다. 나는 이것이 메모리 문제가 어디서 왔는가라고 생각한다. ARC가 나머지 객체에 대한 나머지 포인터를 1 개 갖고있어 메모리에서 어느 것도 해제하지 않는다는 것을 알았다.
이상적으로 모든 변수를 .h 파일로 이동하지 않아도되는 솔루션을 원합니다. 변수 당 정의를 변경하지 않아도됩니다. 즉, 모든 변수에 적용 할 수있는 솔루션을 원합니다. 이것이 가능한지 안다면. 인스턴스 변수가 '강'하다고 말하는 것이 옳다고 생각합니다. 객체의 ARC 참조 횟수를 늘리면 모든 인스턴스 변수를 '약하게'만들 수 있습니까? 그렇다면이 것이 좋거나 나쁘다는 생각입니까?
FYI를 .h 또는 .m으로 옮기는 것은 중요하지 않습니다. .h로 이동하면 공개하게됩니다. –
좋아, 나는 그들에게 사적인 것을 원한다. 그래서 그들도 '약하게'할 수 있을까? – AndyW
서로 참조하는 개체로 인해 문제가 발생할 수 있습니다. 부모와 자식 객체가 있다고 생각하십니까? 필요한 속성을 자식에게 전달할 수 있지만 자식은 약한 속성을 통해 부모 만 참조합니다. – Dominic