2014-11-05 75 views
3

我有一個應用程序,與iOS 8.0完美地工作,直到切換到8.1。當我創建一個SpriteKit遊戲裏面一個UITextView我得到以下錯誤:UITextSelectionView名稱無法識別的選擇器使用SpriteKit和UITextView

-[UITextSelectionView name]: unrecognized selector sent to instance 0x7f96ee6bdfa0 

,如果我在代碼中創建對象或將一個UITextView在我的廈門國際銀行文件中出現。

層次結構是這樣的:

的UIViewController(self.view是SKView) - > UIView的 - > UITextView的

- (id)initWithFrame:(CGRect)frame 
{ 
    self = [super initWithFrame:frame]; 
    if (self) { 
     UITextView *test = [[UITextView alloc] init]; 
    } 
    return self; 
} 

任何想法是什麼問題是,爲什麼它出現如此突然?

+0

當您啓用Zombie Objects時會發生什麼? – 2014-11-05 22:09:09

+0

它什麼也沒說。 – 2014-11-05 22:28:20

+0

你的異常堆棧跟蹤在哪裏? – 2014-11-05 23:04:22

回答

5

問題最終成爲使用performSelector:withObject:afterDelay:在SpriteKit場景中。一旦我用SKAction替換了這些事件,它解決了UITextView問題。

舊代碼:

[self performSelector:@selector(methodName) withObject:nil afterDelay:1.0]; 

新代碼:

SKAction *action = [SKAction performSelector:@selector(methodName) onTarget:self]; 
SKAction *wait  = [SKAction waitForDuration:1.0]; 
SKAction *sequence = [SKAction sequence:@[wait, action]]; 
[self runAction:sequence]; 
+0

嘿,偉大的提示!一個問題,但。你認爲,如果我在SKScene中調用performSelector,但是在UIKit對象上,它仍然會導致問題?我似乎無法自己重新創建崩潰。 – 2015-02-26 08:31:09

0

我有一個類似的問題與崩潰的iOS 8.1折。但是,調用[UITextSelectionView名稱]時不會崩潰,而是日誌告訴我它在[GKLocalPlayerInternal name]上崩潰。

奇怪的是,當我將[self performSelector ...](其中self是一個SKNode)替換爲[SKAction performSelector ...]時,問題就消失了。

在iOS 8.1中似乎不是一個非常明顯的錯誤。

0

我發現一個解決方案是有效的。

UITextView *textView = [UITextView .....]; 
**textView.selectable = NO;** 
相關問題