我正在使用導航控制器的應用程序。當我建立時,我不會收到任何錯誤或警告。我已經在FirstViewController.m
文件中定義了一個方法myMethod
,然後在viewDidLoad
中我調用[self myMethod];
的方法。爲什麼在iPhone模擬器中崩潰的應用程序;我怎樣才能解決這個問題?
當我從控制檯構建並運行時,我什麼都沒有。所以我把NSLog()
語句,像這樣:
-(void) viewDidLoad {
NSLog(@"Entering viewDidLoad");
[self myMethod];
NSLog(@"Called myMethod");
[super viewDidLoad];
}
控制檯不會返回第二的NSLog聲明,導致我相信,應用程序崩潰時調用的方法。
我試過這個模擬器設置爲iOS 4.0.1以及iOS 4.1。我正在構建iOS 4.1 SDK。我非常感謝您提供的任何幫助。
更新:我運行調試器,這似乎顯示問題在myMethod
。在收到「EXC_BAD_ACCESS」之前,我只能通過該方法中的幾行代碼來完成此操作。的代碼行數:
-(void)myMethod {
NSMutableArray *someStuff;
NSMutableArray *someMoreStuff;
stuffSections=[[NSMutableArray alloc] initWithObjects:@"Some Stuff",@"Some More Stuff",nil];
someStuff=[[NSMutableArray alloc] init];
someMoreStuff=[[NSMutableArray alloc] init];
[someStuff addObject:[[NSMutableDictionary alloc]initWithObjectsAndKeys:@"Item Name",@"name",@"Item Picture.png",@"picture",@"http://theurl.net/",@"url",@"1",@"itemCode",nil]];
但現在看來,我不能讓過去的東西添加到someStuff
陣列第一次嘗試。
設置斷點並使用調試器。並且實際上運行着附加的調試器(不僅僅是調試目標)。 – Eiko 2010-11-07 21:49:17
好吧,我在[self myMethod]之後立即放置了斷點。在調試器控制檯中,它顯示「Program received signal:'EXC_BAD_ACCESS'。」不過,我是新手,不知道調試器窗口中的結果是什麼意思... – scojac 2010-11-08 05:54:40
嘗試使用命令+ Y而不是命令+ R運行。這將與附加的調試器一起啓動。當程序崩潰時,執行會在違規行中暫停,讓您有機會找出它的位置並檢查當時變量的值。 – Tommy 2010-11-08 23:53:47