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

これをオンラインで調べたところ、ほとんどの場合、テーブルビューがリリースされる前にこれが発生することがわかりましたnumberOfSectionsInTableView。すべての Web サイトは、テーブルビューを保持する必要があると言っていますが、ARC を使用しているため、それを行うことができません。このクラッシュは時々発生します。そうでない場合は、テーブルビューに触れたり、スクロールしようとした瞬間にクラッシュします。私はいたるところを見てきましたが、この問題について何も見つけることができません。また、テーブルビューがどこでリリースされているのか、確かにわかりません。どんな助けでも大歓迎です。

4

1 に答える 1

2

テーブルビューを初期化してもよろしいですか?.hには、ストーリーボード/ xib内の何にも接続されておらず、.mがプログラムでテーブルを初期化しないことを示唆するテーブルビュー用に記述されたアウトレットがありません。

編集:回答#2 pagetwoViewController宣言をストーリーボードのヘッダーに移動してみてください...問題は、pageTwoViewControllerのビューを追加するだけなので、ARCはローカルで宣言されているためviewDidLoadの最後にリリースを追加することです。

于 2012-05-19T23:05:42.720 に答える