2014-02-28 69 views
2

我的應用程序得到這個錯誤,當我改變方向,我知道了人生第一次,我以前從未見過這種類型的錯誤,錯誤[NSISLinearExpression orientationChanged:]:無法識別的選擇發送到實例

我有搜索很多關於這個錯誤,但我沒有發現任何解決這個問題,

在我的應用我有寫NSNotification的方向變化

Scroller.m

-(id)initWithFrame:(CGRect)frame { 
    self=[super initWithFrame:frame]; 
    if (self) { 
     // Initialization code 

     scrollView=[UIScrollView new]; 
     pageControl=[UIPageControl new]; 
     scrollView.delegate=self; 

     scrollView.pagingEnabled=YES; 
     scrollView.showsHorizontalScrollIndicator=NO; 
     scrollView.showsVerticalScrollIndicator=NO; 

     scrollView.translatesAutoresizingMaskIntoConstraints=NO; 
     pageControl.translatesAutoresizingMaskIntoConstraints=NO; 


     scrollView.backgroundColor=[UIColor clearColor]; 
     pageControl.backgroundColor=[UIColor darkGrayColor]; 
     [pageControl addTarget:self action:@selector(changePage) forControlEvents:UIControlEventValueChanged]; 

     [self addSubview:scrollView]; 
     [self addSubview:pageControl]; 
     self.pageControl.currentPage = 0; 
    [[NSNotificationCenter defaultCenter] addObserver:self 
              selector:@selector(orientationChanged) 
               name:UIDeviceOrientationDidChangeNotification 
               object:nil]; 
     [self setData]; 

    } 
    return self; 
} 

-(void)orientationChanged{ 
[self updateFrame]; 

} 
-(void)updateFrame{ 

    [self layoutIfNeeded]; 
    CGRect mainFrame=scrollView.frame; 
    CGRect frame; 
. 
. 
. 
. 
    // COdes for Updating Frame 
} 

但我得到這個錯誤:

-[NSISLinearExpression orientationChanged:]: unrecognized selector sent to instance 0xa9477c0 2014-02-28 09:56:04.919 TKScroller[604:a0b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSISLinearExpression orientationChanged:]: unrecognized selector sent to instance 0xa9477c0'

編輯:

我在觀察者和方法去除參數, 運行它,我得到了新的錯誤後

[__NSArrayM orientationChanged]: unrecognized selector sent to instance 0xa0845f0 2014-02-28 10:27:40.202 Scroller[810:a0b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSArrayM orientationChanged]: unrecognized selector sent to instance 0xa0845f0'

解決

我刪除觀察員dealloc方法

- (void)dealloc { 

    [[NSNotificationCenter defaultCenter] removeObserver:self]; 

} 
+0

你是Google嗎?您向一個NSISLinearExpression對象發送了一個orientationChanged:消息,並且該類沒有該名稱的方法! –

+0

@HotLicks:是的,我已經在谷歌搜索'[NSISLinearExpression orientationChanged:]'但我沒有找到任何這就是爲什麼我在這裏提出問題。 – Optimistic

+0

我編輯了問題,請檢查。 – Optimistic

回答

7

這麼多次嘗試我發現我沒有刪除觀察員後,所以我必須在dealloc方法將其刪除。

- (void)dealloc { 

    [[NSNotificationCenter defaultCenter] removeObserver:self]; 

} 
相關問題