Você pode enviar contagens de retenção para o NSLog para ajudar a aprender?
Pergunta
Apenas curioso, se houver de alguma forma para exibir objetos, retenha a contagem de contagem usando o NSLog. Eu só quero imprimi -los para consolar para ajudar a aprender como reter/lançar está funcionando em algum código simples?
Saúde -gary-
Solução
Não só é possível, é muito fácil também:
NSLog(@"retain count=%d",[obj retainCount]);
Outras dicas
Eu acho que você pode estar tendo um problema com o NSString, onde as mensagens de retenção e liberação podem ser enviadas para uma string constante, mas na verdade elas não têm efeito nem alteram os objetos reter. O código abaixo funciona, altere -o para usar o NSString e reter / liberar não tem efeito.
Código:
#import <Foundation/Foundation.h>
int main (int argc, const char * argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
NSMutableString *myString = [[NSMutableString alloc] initWithString:@"AB"];
NSLog(@"RC: %d", [myString retainCount]);
[myString retain];
NSLog(@"RC: %d", [myString retainCount]);
[myString release];
NSLog(@"RC: %d", [myString retainCount]);
[myString release];
[pool drain];
return 0;
}
Resultado:
Running…
TESTBED[12306:a0f] RC: 1
TESTBED[12306:a0f] RC: 2
TESTBED[12306:a0f] RC: 1
Gary
No console do depurador, você pode digitar: print (não assinado int) [coisa reterncount
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow