2012-08-10 42 views
0

我希望這是我的了,而最後一個問題,我打開一個XIB文件通過:self.view removeFromSuperview崩潰

Results1 *myView1 = [[Results1 alloc]initWithNibName:@"Results1" bundle:nil]; 
    [self.view addSubview:myView1.view]; 

我對第二XIB文件按鈕:

-(IBAction)Button1:(id)sender 
{ 

    [self.view removeFromSuperview]; 
} 

它崩潰每次:

0xecf09b: movl 8(%edx), %edi 

我有意見聯

我不知道這是否是問題:

@interface TestTypingToolViewController() 

{ 
    NSString *iResults1; 
    NSString *iResults2; 
    NSString *iResults3; 
    NSString *iResults4; 
    NSString *iResults5; 
    NSString *Segment; 
    NSDictionary *ResultsData; 
} 

@end 

感謝您的幫助,大家好!

+0

?什麼是造成崩潰的錯誤以及代碼的哪一行(不是'movl',過低的級別)會發生什麼?這個信息是可用的輸出控制檯... – sergio 2012-08-10 20:34:22

+0

我不知道是什麼弧,但我得到EXC_BAD_ACCESS(代碼= 1,地址= 0xa0686703) – Tim 2012-08-10 20:41:15

回答

2

問題是我需要關閉自動引用計數和一切工作。

0

看起來你有一些殭屍問題,即某些對象在某個時間點被釋放,但你試圖通過一些(懸掛)引用來訪問。您可以通過enabling zombies detection得到關於它的更多信息。

其實,我的猜測是你可以通過將Results1 *myView1存儲在你的類的屬性中來解決這個問題。事實上,在你的代碼中,myView1.view保留self.view;而myView1存儲在局部變量中,所以當該變量不再使用時,應該釋放該對象(在ARC下)。這兩個對象的生命週期之間存在不匹配,這可能導致崩潰。

+0

所以在.h文件中這樣的東西? @property(nonatomic,retain)結果1 * myView1 對不起,我是新來的客觀c – Tim 2012-08-11 01:48:18

+0

與殭屍檢測現在的錯誤是: calll 0x14fe884;符號存根:getpid EXC_BREAKPOINT(code = EXC_1386_BPT,subcode = 0x0 – Tim 2012-08-11 02:00:13

+0

'@property(nonatomic,retain)結果1 * myView1'就是我自己的(或者@ @屬性(非原子,強大)Results1 * myView1'如果你使用ARC)......不要忘記在你的類「dealloc」中調用'release'(在非ARC情況下;如果使用ARC/strong,則不需要釋放) – sergio 2012-08-11 08:04:09

-2

ClassName.h

@property (nonatomic, strong) UIViewController *myView1;

ClassName.m

@synthersize myView1; 

//在 - (空)您使用ARC viewDidLoad中

self.myView1 = [[Result1 alloc] init]; 
[self.view addSubview:self.myView1.view]; 
+5

請不要只用文字解釋你的答案,代碼,這樣每個人都可以理解,而且,由於您正在回答一個老問題,您的答案與其他答案有何不同? – 2012-11-21 23:06:29

相關問題