gpt4 book ai didi

cappuccino - 进口 Cappuccino

转载 作者:行者123 更新时间:2023-12-03 13:38:03 26 4
gpt4 key购买 nike

当我使用终端命令capp gen MyProject创建新的Cappuccino项目时,我得到的AppController.j使用许多Foundation和AppKit类,但是只有一个import语句

@import <Foundation/CPObject.j>

Cappuccino 导入系统如何工作?应用程序如何知道CPNotification,CPWindow,CPTextField和AppController.j中使用的其他类。

谢谢!

最佳答案

大多数导入都是多余的,但最好具有它们,因为它可以帮助我们的静态分析工具在为生产而构建时帮助去除代码。

在index.html和index-debug.html页面上定义了两个“环境”变量。
参见here

OBJJ_INCLUDE_PATHS基本上是objj在导入框架/库代码时要查找的位置的列表。例如,您这样做:

@import <Foundation/CPObject.j>

代替:
@import "Foundation/CPObject.j>

这是因为Foundation/CPObject.j位于框架内部。因此,执行 @import "Frameworks/Foundation/CPObject.j与使用尖括号完全相同。

这意味着您可以将框架代码移动到所需的任何目录,并且使用尖括号语法,我们可以找到那些没有真实路径的文件。

那么您的应用程序如何知道所有其他不直接导入的类呢?
好吧,如果您在上面链接到的索引文件中注意到了,则还有另一行指定objj在哪里可以找到main()。在该文件的顶部,main.j导入了Foundation和AppKit框架: See Here

我们可以 follow这些导入,并看到CPWindow.j被导入到 line 109 of AppKit.j上。

因此,由于AppKit.j为您导入了大多数AppKit,因此,依赖于CPWindow的类(例如)不必手动导入它……但这肯定不会造成伤害(文件永远不会被导入两次)。

但是由于AppKit和Foundation对自己编写的类一无所知,因此您需要手动导入它们。

关于cappuccino - 进口 Cappuccino ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12299650/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com