UITableView ARC问题

时间:2012-05-19 20:27:54

标签: ios uitableview ios5 automatic-ref-counting nszombie

现在我正在制作一个使用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 file

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

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

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

1 个答案:

答案 0 :(得分:2)

你确定你甚至初始化了tableview吗?您的.h没有针对tableview描述的插座,这表明它没有连接到storyboard / xib中的任何内容,并且您的.m不会以编程方式初始化表。

编辑:回答#2 尝试将pagetwoViewController声明移动到storyboard的标题...您的问题是您只添加了pageTwoViewController的视图,因此ARC将该发布添加到viewDidLoad末尾的viewController,因为它是在本地声明的。