J'écris une application iPhone qui essaie de créer une seconde vue lorsque l'utilisateur clique sur un élément dans UITableView. Le code ressemble àComment déboguer des problèmes d'allocation de mémoire?
ReplyToViewController *reply = [[ReplyToViewController alloc] initWithNibName:@"ReplyTo" bundle:nil];
reply.delegate = self;
Message *message = [resultData objectAtIndex:indexPath.row];
int dbid = [message.bizid intValue];
NSLog(@"dbid=%d",dbid);
reply.currentMessage = message;
reply.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:reply animated:YES];
L'objet réponse est créé correctement et la vue est correcte. La dernière ligne du segment de code ci-dessus appelle un code de structure qui appelle éventuellement la méthode viewDidLoad de ReplyToViewController. L'adresse de l'objet réponse dans le code ci-dessus et l'adresse de l'objet dans viewDidLoad ne sont pas identiques.
Une idée d'où vient ce nouvel objet? Comment puis-je déboguer? J'ai également ajouté la méthode suivante dans ReplyToViewController en espérant qu'elle sera appelée et que je peux trouver qui crée ce nouvel objet. Mais cela ne s'arrête pas dans cette méthode.
Toute aide sera grandement appréciée.
- (id) init
{
/* first initialize the base class */
self = [super init];
return self;
}
// Following gets called from the 1st code segment.
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil])
{
// Custom initialization
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
NSLog(currentMessage.text]; // THIS returns nil and the program fails later in the code.
}