0

我有簡單的方法顯示AlertView與文本字段。儀器顯示內存泄漏。請解釋。iOS ARC UIAlertView泄漏內存

- (void)method { 
NSString *value = [[NSUserDefaults standardUserDefaults] valueForKey:@"key"]; 
if (value == nil) { 

    UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Title" message:@"message" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil]; 

    alertView.tag = 101; 
    alertView.alertViewStyle = UIAlertViewStylePlainTextInput; 
    UITextField *txtGroup = [alertView textFieldAtIndex:0]; 
    [txtGroup becomeFirstResponder]; 

    [alertView show]; 
    alertView = nil; 
} 
} 

請找到工具的截圖: enter image description here

+0

你爲什麼做alertView =零?展示之後? –

+0

我在某處讀過,釋放一個使用後需要設置爲零的對象。 – PK86

+0

從這裏http://blog.harbinger-systems.com/2014/04/ios-memory-management-and-arc/ – PK86

回答

0

您需要創建alertView爲:

static UIAlertView *alertView = nil; 

if (!alertView){ 
    alertView = [[UIAlertView alloc] initWithTitle:@"Title" message:@"message" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil]; 
} 
+0

爲什麼UIAlertView應該是靜態的? – PK86

+0

因爲當你調用這個方法時,那麼alertview就會創建新的實例。 – KKRocks

+0

你可以聲明全局的alertiview而不是靜態的。 – KKRocks