2010-06-08 2 views
3

Когда я впервые начал использовать monotouch, я нашел страницу с некоторыми образцами кода для простых и частых задач ... но на некоторых из этих образцов кода я нашел несколько таких вещей, как этот:Monotouch создает UIViews с использованием() блоков

var imageRect = new RectangleF(0f, 0f, 320f, 109f); 
using (var myImage = new UIImageView(imageRect)) 
{ 
    myImage.Image = UIImage.FromFile("myImage.png"); 
    myImage.Opaque = true; 
    view.AddSubview(myImage); 
} 

UIImageView создается внутри блока using().

Я разработчик .Net, и я знаю, что делает use(), но я не понимаю, почему он используется в этом примере. Итак, мой вопрос в том, является ли это лучшим способом создания представлений и каковы различия (если они есть) этого подхода и создания представлений без блока using().

ответ

2

В соответствии с Monotouch documentation версия C# NSObject реализует IDisposable, чтобы обеспечить детерминированное разрушение. Вероятно, блок using должен полностью уничтожить UIImageView после его удаления из view

+0

Большое спасибо за ваш ответ :), но не был объектом внутри используемого(), который должен быть удален при использовании() заканчивается? – Socram

+0

Мое лучшее предположение заключается в том, что Novell изменил 'IDisposable', чтобы использовать семантику подсчета ссылок для потомков NSObject для соответствия шаблону Objective-C. – rpetrich

Смежные вопросы