在控制器中,我創建了一個UIScrollView。我試圖設置這個viewcontroller作爲UISCrollview委託,並實施委託的方法,以添加(稍後)一個UIPageControl。EXC_BAD_ACCESS當拖動UIScrollView
我讀了一下,發現this link,this other link和其他這裏在SO和一些有用的教程在網絡上,但我不明白我做錯了什麼。每次滾動UIScrollView時,該應用程序都會崩潰,並出現EXC_BAD_ACCESS錯誤。
這是我的.h文件
#import <UIKit/UIKit.h>
@interface StatsViewController : UIViewController <UIScrollViewDelegate> {
UIScrollView *scrollView;
UIPageControl *pageControl;
}
@end
在我的.m文件
然後,我創建了滾動並試圖定義委託方法是這樣的:
- (void)viewDidLoad {
[super viewDidLoad];
NSInteger boxWidth = self.view.frame.size.width;
NSInteger boxHeight = 412;
scrollView = [ [UIScrollView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, boxHeight)];
scrollView.pagingEnabled = TRUE;
scrollView.delegate = self;
NSInteger numberOfViews = 2;
StatBreatheCounter *breatheCounter = [ [StatBreatheCounter alloc] init];
breatheCounter.view.frame = CGRectMake(0, 0, boxWidth, boxHeight);
[scrollView addSubview:breatheCounter.view];
BreatheLocationViewController *breatheLocation = [ [BreatheLocationViewController alloc] init];
breatheLocation.view.frame = CGRectMake(320, 0, boxWidth, boxHeight);
[scrollView addSubview:breatheLocation.view];
scrollView.contentSize = CGSizeMake(self.view.frame.size.width * numberOfViews, boxHeight);
[self.view addSubview:scrollView];
}
- (void)scrollViewDidScroll:(UIScrollView *)sender {
NSLog(@"RUNNING");
}
...但每當我滑動滾動視圖,應用程序崩潰。 現在,我在Ojective-C上已經有很多了,但是我覺得我錯過了一些東西。瀏覽各方面的事實,即委託可以提前釋放,當用戶觸發操作時,沒有人在處理方法(對於解釋:))。 ...但如果委託它是viewcontroller本身,它怎麼可以被釋放?
正如你所看到的,我很困惑:( 任何幫助將非常感激
- 編輯: 我要在這裏包括解決方案建立與感謝您的意見和答覆。 當我發佈我的問題時,我深信這個錯誤來自於我創建UIScrollView並設置它的委託的方式,我沒有意識到問題是(因爲所有的事情都是暗示,btw :))我正在分配在它的父母StateViewController沒有聲明任何「強」的引用(再次,對於解釋抱歉,我真的是一個n00b在這)。 非常感謝您幫助我指點正確的方向
Stacktrace請! – 2012-11-27 20:26:49
崩潰可能在'BreatheLocationViewController'的'viewDidLoad'中。只有一個堆棧跟蹤可以驗證。您能否將控制檯中的崩潰消息複製並粘貼到此處。 – iDev
@ACB感謝您的幫助....但如果我在設置「scrollView.delegate = self」這一行的註釋,一切正常,所以我不認爲問題是在其他視圖控制器。對不起,我的極端無知,但我在哪裏可以找到你建議我複製的信息?在調試導航器中,我有很多信息,是否足夠與線程1,0 objs_msgSend相關的部分? –