2010-07-22 50 views
1

的問題是在我按2個按鈕的應用程序崩潰,我想不通爲什麼有關的NSString

Button1的是連接到Button1的 Button2的是有線BUTTON2 一個重要的問題... Button5是有線to button5

我在做什麼錯?

基本上我想檢查,如果排名的順序正確地(55235)

在我AppDelegate.H文件被打孔,我已經定義了一個名爲

的NSString * myEasterEgg變量;

在AppDelegate.M,我有5個按鈕,接線正確,並且每個按鈕都有它自己的方法

-(IBAction)button1:(id)sender 
{ 
if(CFStringCompare((CFStringRef)myEasterEgg, (CFStringRef)@"52235", 1) == 0) 
{ 
myEasterEgg = @""; 
} else { 
myEasterEgg = [myEasterEgg stringByAppendingString:@"1"]; 
} 
} 

-(IBAction)button2:(id)sender 
{ 
if(CFStringCompare((CFStringRef)myEasterEgg, (CFStringRef)@"52235", 1) == 0) 
{ 
myEasterEgg = @""; 
} else { 
myEasterEgg = [myEasterEgg stringByAppendingString:@"2"]; 
} 
} 

-(IBAction)button3:(id)sender 
{ 
if(CFStringCompare((CFStringRef)myEasterEgg, (CFStringRef)@"52235", 1) == 0) 
{ 
myEasterEgg = @""; 
} else { 
myEasterEgg = [myEasterEgg stringByAppendingString:@"3"]; 
} 
} 

-(IBAction)button4:(id)sender 
{ 
if(CFStringCompare((CFStringRef)myEasterEgg, (CFStringRef)@"52235", 1) == 0) 
{ 
myEasterEgg = @""; 
} else { 
myEasterEgg = [myEasterEgg stringByAppendingString:@"4"]; 
} 
} 

-(IBAction)button5:(id)sender 
{ 
if(CFStringCompare((CFStringRef)myEasterEgg, (CFStringRef)@"52235", 1) == 0) 
{ 
myEasterEgg = @""; 
} else { 
myEasterEgg = [myEasterEgg stringByAppendingString:@"5"]; 
} 
} 

-(void)viewDidLoad 
{ 
myEasterEgg = [[NSString alloc] initWithString:@""]; 
} 
+0

我得到這個錯誤 EXC_BAD_ACCESS和stringByAppendingString – 2010-07-22 19:30:00

回答

1

你泄露你的原始字符串,並用新值替換它沒有留住他們。發生崩潰是因爲你在懸掛指針上調用[myEasterEgg stringByAppendingString:…],即一個不再引用任何對象的變量。有關更多信息,請參閱Memory Management Programming Guide

+0

我在工作,當我點擊該鏈接導致HTML呈現問題。你能告訴我如何解決它嗎? – 2010-07-22 19:35:37

+0

獲得一個新的瀏覽器? – kperryua 2010-07-23 22:51:19

+0

我使用的是IE6,因爲我們不允許安裝真實的瀏覽器。 – 2010-07-26 16:24:28