2010-04-14 85 views
0

iPhone:應用CGAffineTransformMakeRotation的UILabel造成神祕墜毀

-(id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil parentController:(GameViewController *)myGameController{ 

有一系列的轉化標籤,像這樣:

deg90 = 1.570796326794897; 
//....transforms 
    background.center = CGPointMake(160,230); 
    background.transform = CGAffineTransformMakeRotation(deg90); 

    BetLabel.text = @"test";  
    BetLabel.transform = CGAffineTransformMakeRotation(deg90); 

最後一行崩潰我:

2010-04-13 21:04:47.858 Game[1204:207] *** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[NSCFArray objectAtIndex:]: index (1) beyond bounds (1)' 
2010-04-13 21:04:47.893 Game[1204:207] Stack: (
    864992541, 
    859229716, (lots of numbers) 

但是,如果我將它評論出來,我會發現文本正在改變。

更新:呃哦,只是做了一個測試..原來其他轉換是在UIImageViews。顯然,在這個xib中旋轉標籤會導致崩潰。

但在另一個文件中的變換都做工精細:

newprofileentry.transform = CGAffineTransformMakeRotation(1.570796326794897); 
    playerb0.transform = CGAffineTransformMakeRotation(1.570796326794897); 
    playerb1.transform = CGAffineTransformMakeRotation(1.570796326794897); 

試圖與全浮點值,還是一樣崩潰代deg90

嘗試清理緩存,重新啓動IB和Xcode,清理所有目標。程序一直運行良好,直到我剛剛添加這些標籤。試圖刪除標籤,讀取和重新連接Outlet。

感謝您的閱讀,希望有人對此有所瞭解。

乾杯!

+0

您的錯誤消息意味着錯誤是在數組的管理 - 有一個數組與一個元素,並試圖使用第二個元素(與索引1)。 這就是爲什麼我認爲你在錯誤的地方搜索錯誤。也許,你的代碼中有一些數組? – kpower 2010-04-14 03:03:42

+0

感謝您的回覆。我做。我也一直在將標籤添加到視圖中作爲子視圖 - 但爲什麼.transform會影響到這一點?除子視圖外,標籤不在任何數組中。嘗試在我初始化數組之前放入這些代碼,仍然崩潰。沒有任何數組只有0或1的大小..似乎是與UILabel本身的問題! – quantumpotato 2010-04-14 03:56:07

+0

你有沒有嘗試過讓@「Test」成爲[NSString stringWithString:@「Test」]?可能會有一些奇怪的事情發生,靜態字符串正在對標籤/ Transform進行一些無效初始化。通過創建一個新的字符串(在爲@「Test」完成的奇怪初始化之外),這可能會在UIView處理轉換的方式上有所不同。我知道。有點出來,但很容易嘗試。 – 2010-04-14 04:37:54

回答

0

我建議將變換移出initWithNib:您可能試圖修改某些尚不存在的內容,因爲筆尖中的對象仍在初始化。

您還應該檢查nib文件(在Interface Builder中或使用ibtool)以查看是否存在與該特定標籤混雜的東西。爲了測試這個問題,你可以在初始化時用另一個標籤替換它的順序,以查看問題是否與該特定標籤相關,或者是否與最後一個位置中的任何標籤或對象相關。

在上下文中發佈更多的代碼可能會有所幫助。

+0

謝謝大家的答案。比較, \t newt = [[gametoken alloc] init]; \t [gametokens2 addObject:newt]; \t [newt release]; 而不是在一個for循環的伎倆。不知道爲什麼......但它現在有效。在訪問該對象的索引1時發生崩潰。不知道爲什麼標籤會與此相關。奇怪的記憶錯誤? – quantumpotato 2010-04-15 15:47:46