无法识别iPhone应用程序中的僵尸对象

时间:2011-12-06 20:23:16

标签: iphone uitableview exc-bad-access nszombie

我是一个为iPhone制作一个简单的签名捕获应用程序的菜鸟。

应用程序是suppost让用户导航到填充了deliveryies的表视图。然后,他们会点击他们目前正在交付的交付。

当我尝试加载表视图时遇到EXC_BAD_ACCESS错误,所以我运行Zombie Diagnostic Instrument来查看是否可以找到问题。我收到了一个Zombie错误,但是“负责的来电者”没有提到我写的任何代码。

所以到目前为止我的应用程序的基本流程是我有一个View上有3个按钮,其中一个导致表视图,然后如果你使用它就会崩溃。

这是视图切换的代码:

-(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];

}

这是它正在切换到

的交付类的代码

标题

#import < UIKit/UIKit.h >

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

@property (nonatomic, retain) UITableView *myTable;

@end

实施

#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

如果有人能帮我找到这个问题,我们将不胜感激。

1 个答案:

答案 0 :(得分:1)

我发现了问题。

问题是我有错误的数据源和表视图的委托。 默认设置为tableview本身而不是文件所有者。

感谢您在我的问题中表现出的兴趣。