好的,下面是创建日期选择器的标准示例
- (void)viewDidLoad {
CGRect pickerFrame = CGRectMake(0,250,100,100);
UIDatePicker *myPicker = [[UIDatePicker alloc] initWithFrame:pickerFrame];
[myPicker addTarget:self action:@selector(pickerChanged:) forControlEvents:UIControlEventValueChanged];
[self.view addSubview:myPicker];
[myPicker release];
}
- (void)pickerChanged:(id)sender
{
NSLog(@"value: %@",[sender date]);
}
这一切都很好。我有点习惯在 IB 中创建元素,所以当我以编程方式创建对象时,我不确定如何访问数据。
我的意思是..我应该将 myPicker 分配给一个类属性,然后作为 _myPicker 访问它吗?
或者假设我想在不调用其他方法的情况下访问 pickerChanged 方法中的日期。我应该分配一个 NSDate 属性并在每次更改选择器时重新分配它吗?
当我试图这样做时,我遇到了一些记忆问题。我有另一种方法获取_theDate,它可能试图在pickerChanged 修改它的同时访问它?
无论如何,我得到的是“以编程方式创建操作表和选择器等内容时的正确工作流程是什么”。当这些事情发生变化时,应该如何保存结果数据以便班级的其他人可以访问它?
奖金问题:
这有区别吗?
for(UILabel *myLabel in view.subviews){
NSLog(myLabel.text);
}
和这个?如果我知道我的视图只包含某种对象,我是否需要一直检查课程?
for((id) myLabel in view.subviews){
if([myLabel isKindOfClass:[UILabel class]){
UILabel *theLabel = myLabel;
NSLog(myLabel.text);
}
}