0

现在我正在制作一个使用 UITableView 的应用程序,但我已经为这个问题苦苦挣扎了 3 天,但我无法弄清楚。

在 .h 文件中,我订阅了两种 tableview 方法。像这样:

#import <UIKit/UIKit.h>
#import <MapKit/MapKit.h>
#import <QuartzCore/QuartzCore.h>
#import <Twitter/Twitter.h>
#import <Accounts/Accounts.h>


@interface pagetwoViewController : UIViewController <UITableViewDataSource,  UITableViewDelegate>
{

}

@property (strong, nonatomic) IBOutlet MKMapView *mapView;
@property (strong, nonatomic) IBOutlet UIImageView *twitterFrame;
@property (strong, nonatomic) IBOutlet UITableView *twitterTableView;
@property (strong, nonatomic) NSMutableArray *timeLineData;

我的实现可以在这里找到:

.m 文件

每当应用程序加载时,它总是崩溃。所以我启用了 NSZombies 并收到了消息:

[pagetwoViewController numberOfSectionsInTableView:]: message sent to deallocated instance 0x27d960

所以我在网上查了一下,发现几乎在所有情况下,都会在 tableview 之前发布时发生这种情况numberOfSectionsInTableView。所有的网站都说我应该保留 tableview,但我正在使用 ARC,我不能这样做。这种崩溃只是偶尔发生。然后当它没有时,当我尝试触摸 tableview 或尝试滚动它时,它崩溃了。我到处找,我根本找不到关于这个问题的任何东西,而且我当然无法弄清楚 tableview 是在哪里发布的。任何帮助将不胜感激。

4

1 回答 1

2

你确定你甚至初始化了tableview吗?您的 .h 没有为 tableview 描述的出口,这表明它没有连接到故事板/xib 中的任何内容,并且您的 .m 没有以编程方式初始化表格。

Edit: Answer #2 Try moving the pagetwoViewController declaration to the header of the storyboard... Your problem is that your only adding the view of the pageTwoViewController therefore ARC adds the release to the viewController at the end of viewDidLoad because it is declared locally.

于 2012-05-19T23:05:42.720 回答