Я новичок в Objective-C, и я не уверен, использую ли я NSAutoreleasePool правильный путь.Это правильный способ использования NSAutoreleasePool?
Если я хочу использовать autorelease только один раз я использую:
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; NSString *newText = [NSString stringWithFormat:@"%d", prograssAsInt]; sliderLabel.text = newText; [pool release]; //newText will be released
Если я хочу использовать autorelease несколько раз я использую:
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; NSString *newText = [NSString stringWithFormat:@"%d", prograssAsInt]; sliderLabel.text = newText; [pool drain]; //newText will be released newText = [NSString stringWithFormat:@"%d", prograssAsInt]; sliderLabel.text = newText; [pool drain]; //newText will be released newText = [NSString stringWithFormat:@"%d", prograssAsInt]; sliderLabel.text = newText; [pool release]; //newText will be released
Это ОК? Есть ли утечки памяти?
Я думаю, что грубость необоснованна. Хотя это задокументировано, это очень противоречиво, до такой степени, что я слышал от опытных программистов Cocoa, которые действительно читали документацию и не верили, что это означает то, что она сказала. Я не думаю, что это необоснованный вопрос для кого-то нового в рамках. – Chuck