重新定义实例变量的类型

时间:2014-05-12 05:13:48

标签: objective-c

是否可以执行以下操作?

UILabel *welcome;

if (someFlag == 1)
  welcome = myTextfield // somehow reset to a textfield, not a label
else
  welcome = myLabel;

...use welcome variable...

1 个答案:

答案 0 :(得分:2)

在编写代码时,无法更改变量的类型。然而,您可以声明为id,它允许您存储任何NSObject(或其子类)指针:

id welcome;

if (someFlag == 1)
  welcome = myTextfield // somehow reset to a textfield, not a label
else
  welcome = myLabel;

或者您可以使用UIView,因为这是两个控件的父类:

UIView *welcome;

if (someFlag == 1)
  welcome = myTextfield // somehow reset to a textfield, not a label
else
  welcome = myLabel;

但是否则,如果不创建新变量,则无法重新声明变量的类型。