【问题标题】:what is "isKindOfClass" and why we use it? [closed]什么是“isKindOfClass”以及我们为什么使用它? [关闭]
【发布时间】:2013-05-17 15:07:35
【问题描述】:

这段代码是什么意思?

[images isKindOfClass:[NSArray class]]

它返回一个布尔值,但我们为什么要使用它?

谢谢

【问题讨论】:

  • 在提出此类问题之前请阅读文档。
  • 它在您提供的简单示例中可能不是非常有用,但在您可能返回不同类型的对象的情况下它非常有用(例如,解析可以返回 NSArray 或 @987654324 的 JSON @ 并且你需要知道返回了什么)。
  • @Zenith:这似乎涵盖了所有内容,除了您可能想要使用它的原因。
  • 这和 Xcode 有什么关系?

标签: objective-c


【解决方案1】:

isKindOfClass 当对象继承自(或者是)给定类时返回 true。在这种情况下,它会检查 imagesNSArray 还是 NSArray 的子类。

我正在处理的一些代码中的一个使用示例是检查我们正在显示的项目是否需要为 iPad ([ctrl isKindOfClass:[BaseSplitViewController class]]) 或 iPhone 处理。像这样:

CGRect backViewFrame = CGRectZero;
if ([currentController isKindOfClass:[BaseSplitViewController class]]) {
    //Set width and hight of background View to 1024.
    [backgroundView setFrame:CGRectMake(0, 0, 1024, 1024)];
    if (UIInterfaceOrientationIsLandscape(orientation)) {
        backViewFrame = CGRectMake(0, 0, 1024, 768);
    } else if (UIInterfaceOrientationIsPortrait(orientation)) {
        backViewFrame = CGRectMake(0, 0, 768, 1024);
    }
} else {
    backViewFrame = currentController.view.frame;
    [backgroundView setFrame:backViewFrame];
}

【讨论】:

  • 为什么要使用它?
  • 检查也看是不是同一个类,不只是继承。
  • @rmaddy 哎呀,澄清了。
  • @RobertHarvey 更新了代码示例 - 我花了一点时间才找到它。
猜你喜欢
  • 2021-12-09
  • 2014-05-27
  • 2017-10-01
  • 2011-08-03
  • 1970-01-01
  • 2011-10-22
  • 2015-09-08
  • 2014-06-01
  • 2018-01-07
相关资源
最近更新 更多