如何将类型为 id 的对象转换或设置为另一种类型,如 UIImageView 或 UIView
how to cast or set an object of type id to another type like UIImageView or UIView
在下面的代码中,我遍历了条目,它们可能是 UIView 或 UIImageView 类型。我想检查 uiComponent 是否属于上述类型,然后我想在代码中继续使用该 uiComponent
是UIView还是UIImageView?
我背了下面的代码,但是我不能使用指针对象
uiComponent
打字后??
请告诉我如何将 uiComponent 对象键入 类 UIView 或 UIImageView 并使用它继续编程
代码
for (id uiComponent in uiviews) {
UIView *uiView;
UIImage *uiImageView;
if ([AQSViewHelper isEntryOfTypeUIView:uiComponent]) {
uiComponent = (UIView *)uiComponent;
}
if ([AQSViewHelper isEntryOfTypeUIImageView:uiComponent]) {
uiComponent = (UIImageView *)uiComponent;
}
if (![uiComponent isHidden]) {
…
..
…
}
根据类型设置本地对象,如果不是 nil 则使用它:
for (id uiComponent in uiviews) {
UIView *uiView;
UIImageView *uiImageView;
if ([AQSViewHelper isEntryOfTypeUIView:uiComponent]) {
uiView = (UIView *)uiComponent;
}
if ([AQSViewHelper isEntryOfTypeUIImageView:uiComponent]) {
uiImageView = (UIImageView *)uiComponent;
}
if (uiView) {
// do what you want because it's a UIView
if ([uiView isHidden]) {
// ...
}
// etc ...
}
if (uiImageView) {
// do what you want because it's a UIView
if ([uiImageView isHidden]) {
// ...
}
// etc ...
}
}
或者,因为您已经在 if
个街区,您可以在那里进行:
for (id uiComponent in uiviews) {
if ([AQSViewHelper isEntryOfTypeUIView:uiComponent]) {
// do what you want because it's a UIView
UIView *uiView = (UIView *)uiComponent;
if ([uiView isHidden]) {
// ...
}
// etc ...
}
if ([AQSViewHelper isEntryOfTypeUIImageView:uiComponent]) {
// do what you want because it's a UIImageView
UIImageView *uiImageView = (UIImageView *)uiComponent;
if ([uiImageView isHidden]) {
// ...
}
// etc ...
}
}
在下面的代码中,我遍历了条目,它们可能是 UIView 或 UIImageView 类型。我想检查 uiComponent 是否属于上述类型,然后我想在代码中继续使用该 uiComponent 是UIView还是UIImageView?
我背了下面的代码,但是我不能使用指针对象
uiComponent
打字后??
请告诉我如何将 uiComponent 对象键入 类 UIView 或 UIImageView 并使用它继续编程
代码
for (id uiComponent in uiviews) {
UIView *uiView;
UIImage *uiImageView;
if ([AQSViewHelper isEntryOfTypeUIView:uiComponent]) {
uiComponent = (UIView *)uiComponent;
}
if ([AQSViewHelper isEntryOfTypeUIImageView:uiComponent]) {
uiComponent = (UIImageView *)uiComponent;
}
if (![uiComponent isHidden]) {
…
..
…
}
根据类型设置本地对象,如果不是 nil 则使用它:
for (id uiComponent in uiviews) {
UIView *uiView;
UIImageView *uiImageView;
if ([AQSViewHelper isEntryOfTypeUIView:uiComponent]) {
uiView = (UIView *)uiComponent;
}
if ([AQSViewHelper isEntryOfTypeUIImageView:uiComponent]) {
uiImageView = (UIImageView *)uiComponent;
}
if (uiView) {
// do what you want because it's a UIView
if ([uiView isHidden]) {
// ...
}
// etc ...
}
if (uiImageView) {
// do what you want because it's a UIView
if ([uiImageView isHidden]) {
// ...
}
// etc ...
}
}
或者,因为您已经在 if
个街区,您可以在那里进行:
for (id uiComponent in uiviews) {
if ([AQSViewHelper isEntryOfTypeUIView:uiComponent]) {
// do what you want because it's a UIView
UIView *uiView = (UIView *)uiComponent;
if ([uiView isHidden]) {
// ...
}
// etc ...
}
if ([AQSViewHelper isEntryOfTypeUIImageView:uiComponent]) {
// do what you want because it's a UIImageView
UIImageView *uiImageView = (UIImageView *)uiComponent;
if ([uiImageView isHidden]) {
// ...
}
// etc ...
}
}