Kan zombieobject niet identificeren in iPhone-applicatie

Ik ben een noob die een eenvoudige applicatie voor het vastleggen van handtekeningen voor de iPhone maakt.

De toepassing laat de gebruiker navigeren naar een tabelweergave gevuld met leveringen. Vervolgens klikten ze op de levering die ze momenteel bezorgen.

Ik kom een ​​ EXC_BAD_ACCESS -fout tegen wanneer ik de tabelweergave probeer te laden, dus heb ik het Zombie Diagnostic Instrument uitgevoerd om te zien of ik het probleem kon vinden. Ik kreeg een Zombie-fout, maar geen van de "Responsible Caller" verwijst naar de code die ik heb geschreven.

Dus de basisstroom van mijn app tot nu toe is dat ik een weergave heb met 3 knoppen, een ervan leidt naar een tabelweergave en dan loopt het vast als je het gebruikt.

dit is de code voor de view-schakelaar:

-(IBAction) deliveriesButtonClicked:(id)sender {
    if (self.deliveriesViewer == nil) {
        DeliveriesViewerController *aOptionController = [[DeliveriesViewerController alloc] initWithNibName: @"DeliveriesViewerController" bundle: nil];
        self.deliveriesViewer = aOptionController;
        [aOptionController release];
    }

    [self.mainNavigationController.view removeFromSuperview];
    [self.view insertSubview:self.deliveriesViewer.view atIndex:0];

}

Dit is de code voor de klasse van leveringen waarnaar wordt overgeschakeld

Header:

#import < UIKit/UIKit.h >

@interface DeliveriesViewerController : UITableViewController  {
    IBOutlet UITableView *myTable;
}

@property (nonatomic, retain) UITableView *myTable;

@end

Uitvoering:

#import "DeliveriesViewerController.h"
#import "AppDelegate.h"

@implementation DeliveriesViewerController

@synthesize myTable;

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
}    

- (void)viewDidUnload {

}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
    return appDelegate.invoices.count;
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString *MyIdentifier = @"MyIdentifier";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier];

    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:MyIdentifier] autorelease];
    }

    AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
    cell.text = [appDelegate.invoices objectAtIndex:indexPath.row];
    return cell;
}

@end

Als iemand me zou kunnen helpen dit probleem te vinden, zou het zeer op prijs gesteld worden.

0
post de code waar u de factuurarray maakt
toegevoegd de auteur Matthias Bauch, de bron
U mist een [superviewDidUnload]; in uw methode -viewDidUnload . Kan je ook een screenshot/transcriptie van de output van je NSZombie-detectie plaatsen?
toegevoegd de auteur jrtc27, de bron
Is deliveriesViewer ingesteld als een eigendomsvoorbehoud?
toegevoegd de auteur Daniel, de bron
Ja, het is ingesteld om te behouden.
toegevoegd de auteur AquaCash5, de bron
'NSMutableArray * newInvoices = [[NSMutableArray alloc] init]; [newFacts addObject: @ "06271991"]; [newFacts addObject: @ "Test nummer 2"]; self.invoices = newInvoices; [release nieuwe facturen]; ' facturen worden behouden
toegevoegd de auteur AquaCash5, de bron
ok ik heb de super call toegevoegd en hier is de link naar een screenshot link
toegevoegd de auteur AquaCash5, de bron

1 antwoord

Ik heb het probleem ontdekt.

Het probleem was dat ik de verkeerde gegevensbron en afgevaardigden had voor de tabelweergave. Standaard was de tableview zelf niet ingesteld op de bestandseigenaar.

Bedankt dat je interesse hebt getoond in mijn probleem.

1
toegevoegd
wat er met mij gebeurt is iets soortgelijks .. het instrument laat de verantwoordelijke beller niet zien. op hetzelfde moment de show het probleem '[NSObject reageertToSelector:]: bericht verzonden naar niet-toegewezen instantie' nadat ik het volgen van NSZombie in Xcode had ingeschakeld. het probleem was dat twee objecten de verantwoordelijkheid hadden om het object uit de superklasse en het andere uit het nib-bestand toe te wijzen en dealloc te verwijderen. "Ik hoop dat mijn commentaar nuttig genoeg is om mensen te helpen"
toegevoegd de auteur Saleh AlDhobaie, de bron