2014-03-31 142 views
-2

我已經多次使用了alertview,但是目前我遇到了問題。除了在iOS 7.1中崩潰之外,我的應用程序正在使用所有版本。以下是日誌消息。iOS 7.1應用程序在顯示警報視圖時崩潰

[_UIBarBackgroundCustomImageContainer image]: message sent to deallocated instance 0x13b88840 

UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"Title" @"Test" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil]; 
[alert show]; 

我不明白爲什麼它僅在iOS的7.1

+0

郵編。 – Rushabh

+0

發佈您的alertview代碼....... –

+0

@「TestTitle」@「Test」標題是錯誤的將其替換爲@「TestTitle Test」 –

回答

0

崩潰是否確定要在主線程?

你可以這樣測試:[NSThread isMainThread];

+0

Virin-你可以解釋一下如何解決這個問題 – iOS

+0

不要在設置UIAlertView的代表時使用NIL:UIAlertView * alert = [[UIAlertView alloc ] initWithTitle:@「錯誤」消息:@「Your message !!」 delegate:nil cancelButtonTitle:@「OK」otherButtonTitles:nil,nil];當我們在使用alertview委託來跟蹤哪個buttonindex被按下時,我們應該在委託中使用self。 –

0

按照要求由我剛剛搬進了我的意見是一個答案OP。

有幾個問題,錯誤的下面一行:

[[UIAlertView alloc]initWithTitle:@"TestTitle" @"Test" delegate:self cancelButtonTitle:kActionOk otherButtonTitles:nil, nil]; 

只是

[[UIAlertView alloc]initWithTitle:@"TestTitle" message:@"Test" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil]; 

至於問題與該行的數據進行替換,它們分別是:

1)方法initWithTitle:delegate:cancelButtonTitle:otherButtonTitles:不是UIAlertView的實際實例方法,因此它不應該在任何iOS中工作,因爲您已經說過它的工作原理在iOS之前的版本7.您應該使用的方法是initWithTitle:message:delegate:cancelButtonTitle:otherButtonTitles:請注意額外的參數message:這是主要問題,應該創建一個編譯器錯誤,並且如果它通過應該會引起運行時錯誤unrecognised selector

2)第二個是是,你必須傳遞兩個nil S代表了otherButtonTitle:最後一個參數,這個參數是nil所以一旦它看到nil它最終什麼都可以傳遞到了參數,從而終止第二個nil是毫無意義的,從未見過。這也可以創建一個編譯器錯誤,但將在第一個問題(1)

的陰影對於關於UIAlertView更多信息,請您出示alertview的Apple Documentation on UIAlertView

相關問題