Obj-C를 처음 접했을 뿐이고, 더 이상 쓸데없는 프로그램을 만들어 내 지식을 향상시킬 수 없습니다. 내가 어떤 메모리 누수도하지 않았는지 확인하고 싶었다. '@autoreleasepool'에있는 프로그램이 종료되면 자동으로 메모리를 해제합니까?Objective-C @autoreleasepool?
또한 나쁜 습관이있는 경우 알려 주시기 바랍니다.
int main(int argc, const char * argv[])
{
@autoreleasepool {
Fraction* fractionOne = [[Fraction alloc]init];
Fraction* fractionTwo = [[Fraction alloc]init];
Fraction* fractionThree = [[Fraction alloc]init];
[fractionOne setTo:1 over:2];
[fractionTwo setTo:1 over:4];
[fractionThree setTo:1 over:8];
[Fraction numberOfFractions];
return 0;
}
}
Nah, 클래스 메서드를 만들기 위해 만든 방법 일뿐입니다. 분수 오브젝트의 수를 기록합니다. 응답 주셔서 감사합니다! – user2350763
ARC는 "메모리를 관리하지 않습니다"라고 생각하고 메모리 누수/충돌을 디버그하기 어려울 것으로 생각합니다. –
당신이 관리하는 정도는 "= nil"(그리고 일반적으로 메모리에 대해 생각하는 것)을 사용하는 것이지만, 나는 당신이 메모리를 명시 적으로 할당 해제 할 수 없다는 것을 의미했다. 초심자는 기억에 관하여 너무 많이 고민하지 않아야합니다. 앱을 만들기 시작할 때 강한/약한 속성 참조를 할 것인지 걱정해야합니다. 나는 ARC에게 그 일을 시키도록 시켰고, 지금까지 아무런 문제가 없었다. – Macro206