问题标签 [class-reference]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
4883 浏览

delphi - Delphi 类引用...又名元类...何时使用它们

我已经阅读了官方文档,并且我了解类引用是什么,但是与替代方案相比,我看不到它们何时以及为什么是最佳解决方案。

文档中引用的示例是 TCollection,它可以用 TCollectionItem 的任何后代实例化。使用类引用的理由是它允许您调用在编译时类型未知的类方法(我假设这是 TCollection 的编译时)。我只是没有看到使用 TCollectionItemClass 作为参数如何优于使用 TCollectionItem。TCollection 仍然能够保存 TCollectionItem 的任何后代,并且仍然能够调用在 TCollectionItem 中声明的任何方法。不会吗?

将此与通用集合进行比较。TObjectList 似乎提供了与 TCollection 大致相同的功能,并增加了类型安全的好处。您无需从 TCollectionItem 继承以存储您的对象类型,并且您可以根据需要将集合设为特定类型。如果您需要从集合中访问项目的成员,您可以使用通用约束。除了 Delphi 2009 之前的程序员可以使用类引用这一事实之外,还有其他令人信服的理由在通用容器上使用它们吗?

文档中给出的另一个示例是将类引用传递给充当对象工厂的函数。在这种情况下,一个用于创建 TControl 类型对象的工厂。它不是很明显,但我假设 TControl 工厂正在调用传递给它的后代类型的构造函数,而不是 TControl 的构造函数。如果是这种情况,那么我开始看到至少有一些使用类引用的理由。

所以我想我真正想了解的是何时何地类引用最合适,他们为开发人员了什么?

0 投票
8 回答
28459 浏览

iphone - Interface Builder 文件中的未知类

我创建了一个相当简单的 iPhone 应用程序。然后想我会创建应用程序的 iPad 版本(通用)。尝试使用“升级”选项,但没有成功。所以我创建了一个单独的通用应用程序并将 xib 文件复制到我的项目中。那也没有成功,所以我删除了 xib 文件(以及它们相关的 .m 和 .h 文件。

现在,当我运行 iPhone 版本时,它在 Interface Builder 文件中为我提供了 Unknown 类 iPadSample1AppDelegate。错误和 UISplitViewController 仅在 UIUserInterfaceIdiomPad 下运行时才支持,然后退出。所以,我恢复到开始 iPad 冒险之前拍摄的快照……我得到了同样的错误。我已经尝试过 XCode 搜索和 Spotlight 搜索。在我的项目中的任何地方都没有对该类或 UISplitViewController 的引用,但出于某种原因,XCode 认为存在。

有什么方法可以删除不存在的引用吗?哈哈

更新:

这可能与我的 XCode 环境被劫持有关。在这里找到一些其他帖子后,我尝试了 Clean All / Build / Touch,当我进行触摸时,我在 XCode 中收到以下错误:

未捕获的异常:

-[XCBuildLogWarningMessage setFileLocations:]:无法识别的选择器发送到实例 0x2014dd0a0

无论如何要重新安装 XCode 而不会弄乱其他一切?

0 投票
2 回答
3345 浏览

iphone - IOS 开发库在你的 mac 上离线

我需要一个离线版本的http://developer.apple.com/library/ios/navigation/

这样的事情存在吗?谢谢你

0 投票
1 回答
385 浏览

delphi - 测试类引用(元类)变量中的类是否为 TMyClass

我想知道从类引用创建的对象是特定类的实例还是它的任何后代。

换句话说,我想要一个布尔表达式,例如

但是其中 var 被替换为涉及类引用变量的表达式。这听起来很容易,但让我完全难住了。

我可以创建一个实例 var := classRefVar.Create,对其进行测试,然后销毁它,但这是一个巨大的开销。

奇怪的是,编译器不会让我有

但对看似相同但无用的句法感到满意

显然,表达式

不好,因为 classRefVar 可能引用 TMyClass 的后代。

当我看到答案时,我期待着踢自己......

0 投票
4 回答
22172 浏览

objective-c - Objective-c,如何从另一个类访问实例变量

我习惯于用 Java 编程并使用类变量来访问其他类的数据。然后我发现类变量在 Obj-C 中的工作方式不同,并且存在问题。

我的问题是我想在用户登录后访问另一个类中的用户输入密码。在不同的论坛中阅读过,因此我应该使用类方法(+)来访问这些数据。但是因为我需要在第二类中创建一个第一类的新实例,这意味着输入的密码在第一类的新实例中不存在。

我的代码如下:

类1.h

类1.m

类2.m

所以我的问题是在class2中创建的c1实例不保存提交的密码,因此返回“null”。

也许这只是我的Java方法搞砸了,但我找不到任何其他方法,所以请帮忙:)!

0 投票
2 回答
812 浏览

c# - 使用反射确定类关联

我正在研究一种提取彼此之间的所有类关联的解决方案。如果我们在对象浏览器中单击一个类,我们可以看到该选项Find All References。我想要类似的东西来找到一个类与其他类的关联。我们如何使用 找到它们Reflection

我有兴趣提取

  1. 组成关系:
  2. 聚合关系
  3. 关联关系
  4. 遗产
0 投票
2 回答
52 浏览

c++ - 重新制定先前的状态 3 查询

好的,从C++ 进程重新制定和合并,以状态 3 混淆终止到具有最少代码的单个文件,用“cout”替换我的“日志”引用,打印到控制台而不是文件。我通过 code::blocks 编译器运行它并得到一个不同的错误,但是对于同一行 ['log' is not declared in this scope]。当我在自己的文件中有类时,它只是以“状态 3”关闭程序。

我之前遇到过范围错误,自己修复了它,并认为我理解它,但我想不是......

这一行是编译器挂起并给我错误的地方:

我是否在正确的轨道上认为问题在于我从不同的类中错误地调用了现有对象的类方法?

当我'//'有问题的行时,一切运行正常,控制台打印出 OPENED, Hello World!, CLOSED。感谢您的耐心和时间,因为我确信这比我认为的要简单得多——而且是新手。

--

我问这个问题的最初目的是(现在我意识到)从多文件程序中的任何 *.cpp 文件中获取一个全局声明的对象。我刚刚找到了这个答案:http ://www.cplusplus.com/forum/beginner/3848/ ,以防这可能对其他有类似问题的人有所帮助。

0 投票
1 回答
1536 浏览

android - ProGuard 没有与 Windows 中使用的 Joda Time 一起编译

实际上,这是一个答案,不再是问题:我确实在 Windows 上使用 JodaTime 花了很多时间,以便使用 ProGuard 将其包含在我的 Android 项目中

Proguard 配置:

我有以下错误:

  1. ProGuard 没有找到我的 JAR 并说:

    Can't read [C:\Users\Reto\Documents\GitHub\advanceIT\LoveClockPAY\libs\joda-time-2.1.jar] (No such file or directory)

    解决方案

    -libraryjars libs/joda-time-2.1.jar

  2. ProGuard 不想编译并抛出许多这样的错误:

    Warning: org.joda.time.base.AbstractDuration can't find referenced class org.joda.convert.ToString

    解决方案

    # Exclude those 2 dependency classes, cause otherwise it wont compile

    -dontwarn org.joda.convert.FromString

    -dontwarn org.joda.convert.ToString

0 投票
2 回答
257 浏览

d - D 中是否有元类或类引用?

D中是否有任何类引用系统?为了更准确,我寻找相当于德尔福

这将用于工厂(就像在Object但不使用类名):

目前我这样做:

但问题是它typeof()总是返回TBaseClass并且永远不会返回子类TBaseClass(当子类作为参数传递时)。这显然是在 Delphi 中使用类引用但 D 语言似乎没有这样的系统的情况。

0 投票
1 回答
841 浏览

c++ - [C++]Intellisense 报告类型的类参考

几个星期以来,我一直在尝试解决这个问题,但我没有做任何事情来解决它。这似乎是 Intellisense 信息未在 .cpp 文件中更新的问题。

问题是头文件中特定类的类引用传递未被识别,而 Intellisense仅在 cpp 文件中被识别。在头文件中,引用被完美读取。

这是头文件,请原谅我在重组、合并函数和重新编写类的过程中出现的一些混乱:

所有与 bTarget 和 bAttacker 相关的参考传递都可以在此头文件中找到,但是一旦我将函数定义放入 .cpp 文件中,Intellisense 就会通过声称定义与 void setupWQueue(error-type &bAttacker , string atype) 只是一个例子。

然而,直接访问 bAttacker 和 bTarget 类,例如 getShip 函数的定义,就可以了。

编辑:

为了彻底,以防万一其中的某些东西导致了这种情况,这里也是 cpp 文件;出于同样的原因,这将比标题更混乱(对不起!):