2010-09-15 77 views
1

在一個項目中,我對某些代碼使用了Three20(不使用TTNavigator或某些高級功能,只有幾件事情)。使用UIActionSheet和Three時出現錯誤

當我嘗試創建UIActionSheet時,出現EXC_BAD_ACCESS錯誤。觸發其計算方法如下(在UIViewController

- (void)viewDidAppear:(BOOL)animated { 
    [super viewDidAppear:animated]; 

    UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:@"Is Anyone Injured?" 
                  delegate:self 
                cancelButtonTitle:nil 
               destructiveButtonTitle:nil 
                otherButtonTitles:nil]; 
    [actionSheet addButtonWithTitle:@"Cancel"]; 
    [actionSheet showInView:self.view]; 
} 

當我運行此代碼的代碼,我得到一個EXC_BAD_ACCESS錯誤,堆棧點的方法稱爲- (CGRect)frameWithKeyboardSubtracted:(CGFloat)plusHeight

Three20的UIViewAdditions.m內。

我註釋掉了這個方法,然後得到了一個EXC_BAD_INSTRUCTION來代替,但是這次在- (NSDictionary *)userInfoForKeyboardNotification的方法中。再說一次,現在又失敗了另一種方法UIViewAdditions.m

有沒有人遇到過這個問題?我試過用NSZombieEnabled進行調試,但這不是原因(沒有消息發送給殭屍對象)。

回答

0

我通過檢查每個Three20項目的「Build Active Architectures Only」複選框來解決這個問題。這似乎是幾個Three20相關錯誤的神奇設置... alt text