2014-10-17 49 views
0
- (void)setTableView:(UITableView *)tableView { 
    _tableView = tableView; 
    [_tableView addObserver:self 
       forKeyPath:@"frame" 
        options:0 
        context:nil]; 
    [self updateFrame]; 
} 

exc_bad_access在嘗試添加觀察者時發生。KVO exc_bad_access(code = 1)

在彙編代碼中,錯誤代碼是'NSKeyValueObserverRegistrationLock'。

不知道是什麼原因導致了錯誤。

我正在運行XCTest,因此可能有錯誤是由將測試代碼注入應用程序代碼引起的。

有人幫忙嗎?

回答

0

一些事情。

您應該定義您的選項參數。 NSKeyValueObservingOptions結構不具有0的條目。如果您在新值之後,則使用NSKeyValueObservingOptionNew。

接下來我假設列出的函數駐留在UIViewController中? UIViewController沒有框架屬性。它的視圖雖然(你的tableView也是這樣)。我不知道你要觀察哪些框架,但你可以嘗試:

[_tableView addObserver:self.view 
       forKeyPath:@"frame" 
        options:NSKeyValueObservingOptionNew 
        context:NULL]; 

或者

[_tableView addObserver:tableView 
       forKeyPath:@"frame" 
        options:NSKeyValueObservingOptionNew 
        context:NULL]; 
相關問題