Я довольно новичок в 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