मैं के रूप में तो मेरे TableViewController के didSelectRowAtIndexPath विधि के भीतर से मेरे नेविगेशन नियंत्रक के ढेर पर एक दृश्य नियंत्रक धक्का कर रहा हूँ:यह ओवर-रिलीज़ क्यों है? UINavigationController/UITableView
MyViewController *myViewController = [[MyViewController alloc] initWithNibName:@"MyViewController" bundle:nil];
MyAppDelegate *appDelegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate];
MyObject *myO = (MyObject *)[appDelegate.myOs objectAtIndex:indexPath.row];
myViewController.amount = myO.amount;
[self.navigationController pushViewController:myViewController animated:YES];
[myViewController release];
अगर मैं एक त्रुटि के साथ वापसी पर अंतिम पंक्ति है कि तब ऐप्लिकेशन क्रैश uncomment:
-[CALayer release]: message sent to deallocated instance 0xd4f860
कुछ ही देर में खुदाई आगे मैं दुर्घटना आगे [सुपर dealoc] करने के लिए कॉल MyViewController के dealoc विधि के भीतर तक ही सीमित हो कर सकते हैं। "[सुपर डीलोक]" को अपूर्ण करके हम दुर्घटनाग्रस्त नहीं होते हैं।
मुझे इसे और कम करने में समस्या आ रही है। "सुपर" UIViewController क्लास होगा और मैं उस डीलोक विधि की और जांच नहीं कर सकता ... क्या मैं कर सकता हूं? शायद यह देखने का एक तरीका है कि वास्तव में 0xd4f860 क्या इंगित कर रहा था लेकिन मुझे पता नहीं है कि कैसे? कोई विचार?
क्या आप कहीं भी myViewController.view जारी कर रहे हैं? –