【发布时间】:2013-08-31 08:58:34
【问题描述】:
我有一个UIViewController 的实现,其中viewDidLoad 的代码如下:
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
for (int i=0; i<10; i++)
{
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
NSString *speedDial = [prefs stringForKey:[NSString stringWithFormat:@"%s%i", "fav",i]];
if ([speedDial length] > 0)
[self getTextField:i].text = speedDial;
[self getTextField:i].returnKeyType = UIReturnKeyDone;
[self getTextField:i].delegate = self;
}
}
当我触摸屏幕上的UITextField 时,应用程序崩溃并且我得到以下输出:“已发送到已释放实例的消息”。在该视图上按下按钮时我遇到了同样的错误,所以我猜错误是在UIViewController 级别。
我使用的ARC 和UITextField 都定义为strong。
我曾尝试寻找内存管理问题,但没有成功。
有什么想法吗?
谢谢, 西蒙
【问题讨论】:
-
你是如何启动你的 UIViewController 的?
-
我有以下代码: - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; if (self) { // 自定义初始化 } return self; }
-
我的意思是你如何展示 ViewController 类?您是在使用导航控制器,还是以模态方式呈现它?
-
-getTextField:是如何实现的? -
ViewController 是这样呈现的:FavoritesActivityViewController *favorites = [[FavoritesActivityViewController alloc] initWithNibName:@"FavoritesActivityViewController" bundle:[NSBundle mainBundle]]; [self.view addSubview:favorites.view];
标签: ios memory-management crash uitextfield