2015-11-30 47 views
1

我有一个UIPicker作为UITextField的inputView。我还没有在storyboard中创建UIPicker。我宣称UIPickerView具有(保留,非原子)属性。这有默认ARC启用。所以如果我在viewDidLoad中分配对象,何时释放该内存?我是否以正确的方式做这件事?xcode 7. ios 9 sdk。何时释放UIPickerView?

谢谢。

这里是我的代码:

@interface ewfCustInfoViewController : UIViewController <UITextFieldDelegate, UIPickerViewDelegate, UIPickerViewDataSource> 
: 
@property (retain, nonatomic) IBOutlet UIPickerView *cityPicker; 
@property (weak, nonatomic) IBOutlet UITextField *labelCity; 

viewDidLoad中:

_cityPicker = [[UIPickerView alloc] initWithFrame:CGRectMake(0, 50, 100, 150)]; 
_cityPicker.delegate = self; 
_cityPicker.dataSource = self; 
self.labelCity.inputView = _cityPicker; 
+0

为什么'cityPicker'声明为插座,但是您在代码中创建它?做一个或另一个,而不是两个。 – rmaddy

回答

0

您不必在ARC释放内存。 OS会照顾到这一点。

+0

如果我将属性更改为(弱,原子)我得到一个警告说对象将在赋值后被释放。所以如果我将其定义为“保留”,我不需要做任何事情? – user3282227

+0

@ user3282227没有人说要将属性更改为“weak”。 – rmaddy

+0

@rmaddy:我首先在storyboard中创建了uipickerview,并在storyboard中创建了插座。默认情况下,xcode会将其作为(弱,原子)。后来我从故事板中删除它,因为我做uipicker作为uitextfield的inputView。多数民众赞成在我那里仍然有IBOutlet。它现在消失了。 – user3282227