Обратите внимание, я не с помощью Interface Builder.
Я сделал мои подпоказы __weak
, чтобы они автоматически обнулялись на iOS 5 с ARC, когда объекты, на которые они ссылаются, освобождаются. Это означает, что мне не нужно обнулять их вручную в viewDidUnload
(что кажется самым безопасным шаблоном для принятия).
Однако, поскольку они слабые, я не могу напрямую назначить их своим иварам, когда я их alloc
или ARC немедленно освобождает их, единственное решение, которое я нашел, - это присвоение временной сильной локальной переменной, например так:
UIView *strongTmp = [[UIView alloc] initWithFrame:self.view.bounds];
[self.view addSubview:strongTmp];
weakIVar = strongtmp;
Это безобразно, и его цель не сразу очевидна без подробного комментария. Я хочу что-то (более) элегантное, как:
[self.view addSubview:weakIVar = [[UIView alloc] initWithFrame:self.view.bounds]];
Но при этом выдается то же предупреждение компилятора (объект будет освобожден сразу после назначения).
Есть предложения? Заранее спасибо.