2012-01-21 35 views
0

UITextBorderStyleNone和ROUNDRECT之間切換時,我無法想出一個辦法,在運行時來回切換兩種不同的邊框樣式之間在文本字段沒有崩潰的應用程序。EXC_BAD_ACCESS上的UITextField

我知道如何編寫它(如下圖所示):

- (void)switchToStaticView 
{ 
    [nameTextField setBorderStyle:UITextBorderStyleNone]; 

    // rest of code snipped out 
} 

- (void)switchToEditView 
{ 
    [nameTextField setBorderStyle:UITextBorderStyleRoundedRect]; 

    // rest of code snipped out 
} 

回去StyleNone當我得到一個 'EXC_BAD_ACCESS' 錯誤。我相信這是IOS5和/或4.2 Xcode的一個問題 - 沒有人知道如何解決這個問題呢?

+0

這裏沒有什麼脫穎而出。 'nameTextField'是如何定義的?你在使用ARC嗎?它是一個財產還是隻是一個伊娃? –

+0

是的,我使用ARC,其定義爲屬性不是一個iVar ... @property(弱,非原子)IBOutlet UITextField * nameTextField; – ElasticThoughts

回答

0

屬性定義更改爲強引用

@property (strong, nonatomic) IBOutlet UITextField *nameTextField; 

弱引用用於停止循環引用。閱讀更多ARC Lifetime Qualifiers

+0

將其更改爲strong並未解決問題,但在嘗試返回到UITextBorderStyleNone時仍遇到同樣的錯誤。有趣的是,如果我改變switchToEditView方法使用UITextBorderStyleBezel而不是RoundedRect,它可以完美無缺地工作!奇怪!... – ElasticThoughts

+0

我剛剛發現了另一個線程,這些人也有同樣的問題,因爲我沒有解決這個問題在這個線程然而... http://stackoverflow.com/questions/7759729/uitextfield-問題-在-IOS -5-通過改變-uitextfieldborderstyle-在運行時 – ElasticThoughts